我试图像这样配置我的多模块maven项目:
父项目
<modules>
<module>../dao</module>
<module>../core</module>
<module>../web</module>
</modules>
我的&#34;网络&#34;模块对我的核心有一个依赖关系&#34;项目和我的核心项目到我的&#34; dao&#34;项目
例如,我的网页包含:
<dependency>
<groupId>com.groupid</groupId>
<artifactId>core</artifactId>
<version>${project.version}</version>
<classifier>jar-with-dependencies</classifier>
</dependency>
当我构建我的父项目时,所有构建工作正常,但有一个非常奇怪的依赖项副本。实际上,我的父项目包含所有子依赖项
例如,joda-time在我的网站中。
当我尝试解压缩我的web.war时,它包含我的core-jar-with-depency.jar和所有依赖项。
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<skipAssembly>false</skipAssembly>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
如何配置我的父项目以禁用依赖项包含?
答案 0 :(得分:1)
使用分类器jar-with-dependencies的任何特定原因?看着你的需要,我想你可以做到这一点---
dao --> module with packaging jar
core --> module with packaging jar & dependency of dao without any classifier.
web --> module with packagingc war & dependency of core without any classifier.
最终,您的网络战争文件将“传递”获得核心&amp;道和&amp;所有的依赖。看看这是否有帮助。
---更新:
我刚创建了一个带核心模块和示例的示例项目我的GIT中心的网络模块。
https://github.com/Ravikharatmal/MyGitRepo/tree/master/MultiModuleMavenProject
Web依赖于Core。 Core依赖于第三方库commons-lang。当我执行'mvn install'时,您可以看到最终的web.war文件包含core.jar以及commons-lang.jar,即core.jar的传递依赖。
我希望这就是你要找的东西。