Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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
Scala sbt多项目未定义的设置_Scala_Sbt_Multi Module - Fatal编程技术网

Scala sbt多项目未定义的设置

Scala sbt多项目未定义的设置,scala,sbt,multi-module,Scala,Sbt,Multi Module,我在SBT中有一个多项目设置。在我们的构建过程中,项目中有一个由CI自动更新的文件。它包含应用程序版本 但是,每当我尝试加载应用程序设置时,都会出现类似以下错误: [error] References to undefined settings: [error] [error] module1/*:appProperties from module1/*:version (/Users/jespeno/workspace/multi-module/build.sbt:10) [error

我在SBT中有一个多项目设置。在我们的构建过程中,项目中有一个由CI自动更新的文件。它包含应用程序版本

但是,每当我尝试加载应用程序设置时,都会出现类似以下错误:

[error] References to undefined settings: 
[error] 
[error]   module1/*:appProperties from module1/*:version (/Users/jespeno/workspace/multi-module/build.sbt:10)
[error] 
[error]   module2/*:appProperties from module2/*:version (/Users/jespeno/workspace/multi-module/build.sbt:10)
这就是我的
sbt
文件的外观:

val appProperties = settingKey[Properties]("app version")

appProperties := {
  val prop = new Properties()
  IO.load(prop, new File("version.properties"))
  prop
}

val commonSettings = Seq(
  version := appProperties.value.getProperty("project.version"),
  scalaVersion := "2.11.7"
)

lazy val root = (project in file(".")).settings(commonSettings: _*)
  .aggregate(module1, module2)
  .settings(
    name := appProperties.value.getProperty("project.name")
  )

lazy val module1 = (project in file("./modules/module1"))
  .settings(commonSettings: _*)
  .settings(
    name := "module1"
  )

lazy val module2 = (project in file("./modules/module2"))
  .settings(commonSettings: _*)
  .settings(
    name := "module2"
  )
这是我的
版本。属性

project.name="multi-module"
project.version="0.0.1"

有趣的是,根项目能够正确加载设置:如果我删除子模块,构建就会正确启动。我正在使用SBT版本
0.13.8

这是由于
appProperties
对子模块不可见(
module1
module2
),您可以将其更改为:

appProperties in Global := {
  val prop = new Properties()
  IO.load(prop, new File("version.properties"))
  prop
}