1

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

[...]

调用项目时oneJargui一切似乎都运行良好,但root项目的类不包含在 jar 中(尽管库依赖项包含)。有什么解决办法吗?

4

1 回答 1

0

我从未像您一样尝试过轻量级配置,但您不应该将 oneJar 设置放在根 sbt 文件中吗?你想打包根目录并包含家伙,对吗?

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

sbt-oneJar 已经有 2 年没有更新了,而 sbt-assembly 最近更新了。我不确定哪个是首选,但我宁愿使用主动工具。

于 2014-04-23T19:20:47.240 回答