2012-04-17 174 views
0

我的应用程序结构:我的项目(让我们说AAA),它包装为JAR。项目AAA被添加用于Web项目BBB和用于作为EAR的CCC的BBB内部模块。maven包装不包括依赖罐子

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

问题

1)如何让公共库父母和孩子的项目之间共享,从而避免重复 2)如何将单个项目库(这是不常见)在Maven构建

回答

1

默认在maven中只包含实际模块中的类文件而不是依赖的jar。这可以通过使用maven-shade-plugin来实现,如果你想创建一种ueber-jar,但这不是通常的用例。如果您尝试创建一个耳朵,而不是所有的包装都会被打包,否则您的配置不正确,或者您没有使用Maven-ear-plugin或者您的包装未被定义为“耳朵”。

如果你想分享一个lib让我们把它常见多模块内建立最简单的解决方法是这样的创建结构:

+-- root (pom.xml) 
     +-- module-1 (pom.xml) 
     +-- module-2 (pom.xml) 
     +-- common (pom.xml) 

,你在模块1定义了常见的依赖例如或者在将使用公共模块作为依赖关系的任何其他模块中。你可以看看这个example