【发布时间】:2018-08-15 22:37:21
【问题描述】:
我有一个这样的多模块项目
foobar
|
+-- pom.xml
|
+-- common-lib/
| |
| +-- pom.xml
| +-- src/
|
+-- foo-app/
| |
| +-- pom.xml
| +-- src/
|
+-- bar-app/
| |
| +-- pom.xml
| +-- src/
|
-+-
foo-app 和 bar-app 都依赖于 common-lib 中的代码以及它们自己的 POM 中的依赖关系。
使用 mvn package 我可以构建三个轻量级 JAR。
我想要的是两个可执行的 JAR,每个都包含依赖项,用于:
- foo-app
- 酒吧应用
如何用 maven 做到这一点?
如果有人建议这样做,由于 foo-app 和 bar-app 的依赖项之间的冲突,我无法将它们合并到一个 foobar-app 中。
【问题讨论】:
-
我很困惑为什么这是一个问题。 common-lib 中是否存在“依赖项之间的冲突”?
-
foo-app 需要 fdep。 bar-app 需要 bdep。您不能在同一个 JVM 实例中构建同时使用 fdep 和 bdep 的项目,它们都将不同版本的 netty 捆绑到其 JAR 中,导致运行时出现 AbstractMethodError 异常。因此,我将 foobar-app 拆分为 foo-app 和 bar-app。现在我想要这个三模块项目的 maven 配置,它将生成两个可执行的 jar。
标签: java maven maven-assembly-plugin multi-module maven-module