问题描述
最近,Been试图改变我的Scala项目进行装配的方式,以便仅从其中生成一个jar,而不是每个模块都生成一个。
main-project
| - inner-module-one [inner_module_one]
| - inner-module-two [inner_module_two]
我目前对主要模块的操作如下(我希望它的uber jar包含其他模块内容)。
project
.in(file("."))
.settings(
name := "main-project",assemblyName,settings
)
.aggregate(
inner_module_one,inner_module_two
)
另外两个模块声明如下。
lazy val inner_module_one = project
.in(file("inner-module-one"))
.settings(
name := "inner-module-one",settings,dependencies and such (...)
)
.dependsOn(
inner_module_two
)
为main-project
生成的jar文件非常小(大小不超过5mbs),并且仅包含与Scala相关的内容,而没有任何项目类。但是,其他模块罐是完整的,并且包含它们所需的一切。
我已经尝试将以下设置添加到main-project
。
aggregate in assembly := false
但到目前为止,仍然没有运气。不会生成子模块的jar,但是main-project
jar仍然不包含子模块的内容。
任何线索可能出在哪里?
编辑
尝试了@LuisMiguelMejíaSuárez的建议,似乎想要构建,但是,出现了一些错误,这些错误已在其各自的模块中解决。在给定的模块中,由于有一些覆盖而解决了一些冲突,但是现在它们又出现了。
[error] deduplicate: different file contents found in the following:
使用dependsOn
而不是aggregate
是否会影响依赖项的添加,覆盖等方式?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)