Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向SBT子项目添加工件:引用未定义的设置_Sbt - Fatal编程技术网

向SBT子项目添加工件:引用未定义的设置

向SBT子项目添加工件:引用未定义的设置,sbt,Sbt,我有一个多模块SBT项目,我想向子模块添加一个工件(由自定义任务生成)。 但我总是有一个未定义设置的参考错误: Reference to undefined setting: documentation/*:adocPdf from documentation/*:packagedArtifacts ((sbt.BuildExtra) Defaults.scala:1966) 这是我的sbt 0.13.11的build.sbt: import sbt.Keys._ import sbt.

我有一个多模块SBT项目,我想向子模块添加一个工件(由自定义任务生成)。 但我总是有一个未定义设置的
参考
错误:

Reference to undefined setting: 
  documentation/*:adocPdf from documentation/*:packagedArtifacts ((sbt.BuildExtra) Defaults.scala:1966)
这是我的sbt 0.13.11的
build.sbt

import sbt.Keys._
import sbt.Project.projectToRef
import sbt._

lazy val commonSettings = Seq(
  scalaVersion := "2.11.8",
  [...]
)

lazy val adocPdf: TaskKey[File] = taskKey[File]("Generate documentation from Asciidoc")
adocPdf := {
  // generate pdf documentation to target/documentation-$version.pdf
  [...]
  file(s"${documentation.base.absolutePath}/target/documentation-${version.value}.pdf")
}

lazy val docPdfArtifact: Artifact = Artifact("documentation", "pdf", "pdf", None, Configurations.Docs :: Nil, None)

lazy val api = (project in file("api"))
    .settings(commonSettings: _*)

lazy val documentation = (project in file("documentation"))
    .settings(commonSettings: _*)
    .settings(addArtifact(docPdfArtifact, adocPdf).settings: _*)

lazy val myProject = (project in file("."))
    .settings(commonSettings: _*)
    .aggregate(api, documentation)

有什么问题吗?

我不确定上面的
addArtifact
在做什么,但是您需要将定义
adocPdf:TaskKey[File]
任务体时创建的设置分配给给定的项目:

lazy val adocPdf:TaskKey[File]=TaskKey[File](“从ascidoc生成文档”)
惰性值ADOCPDFSETING=adocPdf:={
//..任务定义-返回一个`文件`
}
惰性val文档=(文件中的项目(“文档”))
//将设置应用于项目
.设置(ADOCPDFSETING)