maven包装不包括从属罐子

时间:2012-04-17 16:39:32

标签: maven

我的应用程序结构:我的项目(让我们说AAA)包装为JAR。项目AAA依赖于Web项目BBB和BBB inturn模块,用于CCC,即EAR。

在进行AAA项目maven构建时,maven不包括依赖jar作为打包的一部分,并且在部署ear包时部署最终会失败。

问题

1)如何在父项目和子项目之间共享公共库,以避免重复 2)如何在maven构建期间包含单个项目库(这不常见)

1 个答案:

答案 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