2016-04-05 76 views
0

我想將簡單的Maven項目替換爲SBT項目。但我有 面臨幾個問題。在行家我有幾個型材項目像從maven切換到sbt

<profile> 
       <id>name</id> 
       <properties> 
        <tomcatHome>/apache-tomcat-7.0.42</tomcatHome> 
        <config.folder>/conf/</config.folder> 
        <data.folder>/conf/data</data.folder> 
       </properties> 
      </profile> 

這個文件對於不同的改變建立在行家

mvn package -P name 

,或者可以通過IntelliJ IDEA的嵌入式Maven構建和服務器推出使用

也可以在spring配置中使用屬性(通過佔位符)。

<context:property-placeholder location="file:${config.folder} /> 

如何爲sbt編寫類似的配置? 我沒有在文檔中找到類似的東西 謝謝

+1

請參見[將模塊版本作爲命令行參數發送到SBT](http://stackoverflow.com/a/36331828/651140)。 –

回答

1

在sbt文件中,您可以使用scala語法。

簡單的例子。

val akkaVersion = util.Properties.propOrNone("akka.version").getOrElse("2.4.3") 

libraryDependencies += "com.typesafe.akka" %% "akka-actor" % akkaVersion 

當你調用sbt的版本將被設置爲默認值「2.4.3」。但是當你撥打:

sbt -Dakka.version=2.3.13你將使用2.3.13版本。

下一個例子是xsbt-web-plugin。您可以選擇JettyPlugin或TomcatPlugin。

val containerPlugin = util.Properties.propOrNone("use.tomcat"). 
        map(_ => TomcatPlugin).getOrElse(JettyPlugin) 

enablePlugins(containerPlugin) 

當你撥打: sbt -Duse.tomcat TomcatPlugin將被使用。否則JettyPlugin。

+0

主要問題是:我怎樣才能從** .sbt **文件(例如從'.pom **文件中的'/conf/data')傳遞參數到** spring ** context '')? – Alexandr