2015-11-04 61 views
0

我的任務是將一箇舊的ant構建腳本重寫爲SBT。碰巧,我們的套件由3個模塊組成:多模塊Scala Play 2.3 conf位置

  • A Play 2.3前端Web服務器;
  • 用於從各種其他系統檢索數據的後端;
  • 一箇中間模塊,包含一些用於數據庫訪問和業務邏輯的共享類。

下面我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目錄嗎?

回答

1

在情況下,幫助,我們大約有激活劑(SBT)activatorWrapper包裝腳本:

#!/bin/bash 

activator -Dconfig.file=front/conf/application.conf 

然後就可以開始您的應用程序:

$ ./activatorWrapper 
0

您可以使用系統屬性指定替代配置文件。有關詳細信息,請參閱here

+0

這是不是真的,因爲一個選項我們正在使用一個需要一些初始化的庫(我們在Global對象中做的)。當我們運行sbt測試時,這個命令行參數被忽略,因此Global對象不會初始化庫。 – irundaia

+0

你如何設置房產?你可以將'build.sbt'加入如下'javaOptions + =「-Dconfig.file =/opt/conf/prod.conf」}「 – moem

相關問題