2014-04-12 99 views
1

當使用oneJar打包多項目sbt構建時,項目依賴關係不捆綁到jar中。我的設置如下:sbt-onejar和多項目構建

foo/build.sbt   (top-level build.sbt) 
foo/src/    (sources of the root project) 
foo/gui/build.sbt  (project 'build' definition) 
foo/gui/src   (sources of the 'gui' project) 

構建定義是:

// foo/build.sbt 

name := "foo" 

version := "0.0.1" 

scalaVersion := "2.10.4" 

lazy val root = project.in(file(".")) 

lazy val gui = project.in(file("gui")).dependsOn(root) 

[...] 

//foo/gui/build.sbt 

name := "foo-gui" 

seq(com.github.retronym.SbtOneJar.oneJarSettings: _*) 

[...] 

當在gui項目似乎一切運行正常通話oneJar,但root項目的類不列入jar(儘管庫依賴關係)。有沒有修復?

回答

0

我從來沒有嘗試過輕的配置,但不應該將oneJar設置放在根sbt文件中?你想打包根和包括人嗎?

我今天第一次嘗試了類似的東西,並開始使用oneJar,但是當使用完整的sbt配置時,編譯器抱怨設置是Seq(_),並且希望單個設置或類似的東西。我切換到sbt-assembly,它的工作。

當sbt-assembly最近更新時,sbt-oneJar尚未更新2年。我不確定哪個是首選,但我寧願使用有效的工具。