我的应用程序结构:我的项目(让我们说AAA)包装为JAR。项目AAA依赖于Web项目BBB和BBB inturn模块,用于CCC,即EAR。
在进行AAA项目maven构建时,maven不包括依赖jar作为打包的一部分,并且在部署ear包时部署最终会失败。问题
1)如何在父项目和子项目之间共享公共库,以避免重复 2)如何在maven构建期间包含单个项目库(这不常见)
答案 0 :(得分:1)
maven中的默认设置是仅打包实际模块中的类文件而不是依赖的jar。如果你想创建一种ueber-jar,可以使用maven-shade-plugin来实现,但这不是通常的用例。如果你试图创建一个耳朵,那么所有的罐子都会被打包,否则你的配置不正确,或者你没有使用maven-ear-plugin,或者你的包装没有定义为“耳朵”。
如果你想共享一个lib,让我们在多模块构建中调用它,最简单的解决方案就是创建这样的结构:
+-- root (pom.xml)
+-- module-1 (pom.xml)
+-- module-2 (pom.xml)
+-- common (pom.xml)
您可以在module-1中定义common作为依赖项,例如在将使用公共模块作为依赖项的任何其他模块中。您可以查看此example。