sbt-onejar和多项目构建

时间:2014-04-12 10:46:07

标签: scala sbt sbt-onejar

当使用oneJar打包多项目sbt构建时,项目依赖项不会捆绑到jar中。我的设置如下:

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: _*)

[...]

oneJar项目上调用gui时,一切似乎运行正常,但root项目的类不包含在jar中(尽管库依赖项是)。有什么问题吗?

1 个答案:

答案 0 :(得分:0)

我从未尝试过轻量级配置,但你不应该将oneJar设置放在root sbt文件中吗?你想打包root并包含那个人吗?

我今天第一次尝试了类似的东西,并开始使用oneJar但是当使用完整的sbt配置时,编译器抱怨设置是Seq(_)并且sbt期望单个设置或类似的东西。我切换到sbt-assembly并且它有效。

sbt-oneJar最近更新了sbt-assembly时未更新2年。我不确定哪一个是首选,但我宁愿使用有效的工具。