2017-06-24 77 views
1

我有以下用例。我想爲scala 2.10和2.12構建相同的Scala項目。當我這樣做時,我想指定一些2.10版本的依賴關係,而我希望在2.12版本的jar中編譯這些依賴關係。SBT:具有不同依賴關係的兩個Scala版本的跨構建項目

我在看SBT的文檔,發現我可以如何將build.sbt拆分爲單獨的聲明,但總是會被提及爲子模塊。就我而言,我想交叉構建整個應用程序 - 而不是特定的部分。

任何提示或資源將不勝感激。

回答

2

您可以根據Scala版本組裝庫依賴關係。簡單的例子,可以不建..:

libraryDependencies := { 
    CrossVersion.partialVersion(scalaVersion.value) match { 
    case Some((2, scalaMajor)) if scalaMajor == 12 => 
     libraryDependencies.value ++ Seq(
     "your.org" %% "your-lib" % "1.0") 
    case Some((2, scalaMajor)) if scalaMajor == 10 => 
     libraryDependencies.value ++ Seq(
     "your.org" %% "your-lib" % "1.0" % provided) 
    case _ => Seq() 
    } 
} 

對於一個完整的示例,請參閱http://github.com/scala/scala-module-dependency-sample

相關問題