我的任务是将旧的ant构建脚本重写为SBT。碰巧,我们的套件由3个模块组成:
可以找到我的Build.scala文件的摘录:
val sharedSettings = Seq(
organization := <organization here>,
version := "1.2.5",
scalaVersion := "2.11.1",
libraryDependencies ++= libraries,
unmanagedJars in Compile ++= baseDirectory.value / "lib",
unmanagedJars in Compile ++= baseDirectory.value / "src",
unmanagedJars in Compile ++= baseDirectory.value / "test"
)
lazy val middle = project.settings(sharedSettings: _*)
lazy val back = project.settings(sharedSettings: _*).dependsOn(middle)
lazy val front =
project
.enablePlugins(play.PlayScala)
.settings(sharedSettings: _*)
.settings(scalaSource in Compile := baseDirectory.value / "app")
.settings(
routesImport ++= Seq(
"scala.language.reflectiveCalls", // Removes warnings when using multiple routes files
"com.asml.cerberus.front.toolbox.Binders._")
)
.dependsOn(middle % "compile->compile;test->test")
我在./front/conf/目录中获得了我的application.conf。不幸的是,如果我现在运行sbt,它会查找./conf/application.conf文件。 (我已经通过移动conf目录对此进行了测试。)
有什么方法可以告诉SBT / Play使用前面模块的conf目录吗?
答案 0 :(得分:1)
如果有帮助,我们在activator(sbt)activatorWrapper周围有一个包装器脚本:
#!/bin/bash
activator -Dconfig.file=front/conf/application.conf
然后您可以使用以下命令启动您的应用程序:
$ ./activatorWrapper
答案 1 :(得分:0)
您可以使用系统属性指定备用配置文件。有关详细信息,请参阅here。