【发布时间】:2013-10-19 23:15:09
【问题描述】:
我有一个多模块 Maven 项目。父 POM 和单个模块的 pom 工作正常(因为每个模块中的代码运行良好,没有任何依赖问题,mvn:package 目标运行没有任何警告/错误)。现在,我需要为每个模块创建一个 jar。
项目结构及其依赖大致是这样的
ProjectABC
|
|--ModuleA
| |-Log4J
| |-Guava
| |-pom.xml
|
|--ModuleB
| |-ModuleA
| |-Commons
| |-pom.xml
|
|
|--MoudleC
| |-ModuleB
|
|-pom.xml
我关注了这个 Maven multi-module project - copying all "package" JARS from submodules into parent/target/
并且,能够将我所有子模块的 jar 放入 mouduleJars 文件夹,但我无法运行任何 jar,因为没有模块的依赖项被复制到 mouduleJars 文件夹中。例如,如果module A 依赖于Log4J,我的mouduleJars 文件夹中没有log4j.jar,那么log4J 也没有打包在moduleA.jar 中
问题
如何在多模块项目中创建自包含(独立模块 jar)。
或者,如何获取 lib 文件夹中的所有依赖项。
临时解决方法
现在,我使用 IntelliJ IDEA ide 将所有依赖项(如 log4J、Guvava 等)复制到 lib 文件夹中
并通过将lib 文件夹添加到类路径来运行maven 生成的moduleA.jar。这运行良好,但我不喜欢这种手动方法,并希望 maven 处理它。
对于那些认为它是重复的或已经回答和反对的人
我的问题不是问 Maven Assembly Submodules Multimodules 或者这个
Maven : Multimodule projects and versioning
我已经花了一天多的时间尝试与maven-assembly-plugin 一起工作,但没有任何成功。
如果需要更多详细信息,请告诉我。
【问题讨论】:
-
你想要一个包含所有依赖项的 ProjectABC.jar 吗?
-
如果可以轻松做到,那也应该可以。
标签: java maven jar intellij-idea