向SBT子项目添加工件:引用未定义的设置
我有一个多模块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.
参考
错误:
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)