gpt4 book ai didi

java - 我如何正确配置maven多模块项目

转载 作者:行者123 更新时间:2023-11-30 06:35:50 28 4
gpt4 key购买 nike

我正在尝试像这样配置我的多模块 Maven 项目:

父项目

  • 网络
  • 核心
<modules>
<module>../dao</module>
<module>../core</module>
<module>../web</module>
</modules>

我的“web”模块对我的“核心”项目有一个依赖关系,而我的核心项目对我的“dao”项目有一个依赖关系。

例如,我的 web pom 包含:

<dependency>
<groupId>com.groupid</groupId>
<artifactId>core</artifactId>
<version>${project.version}</version>
<classifier>jar-with-dependencies</classifier>
</dependency>

当我构建父项目时,所有构建工作正常,但有一个非常奇怪的依赖项副本。事实上,我的父项目包含所有子依赖项

enter image description here

例如,joda-time 在我的 web pom 中。

当我尝试解压缩 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>

如何配置我的父项目以禁用依赖项包含?

最佳答案

使用分类器 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.

最终,您的 Web War 文件将“传递”获取 core 和 dao 及其所有依赖项。看看这是否有帮助。

---更新:

我刚刚在我的 GIT 中心创建了一个包含核心模块和 Web 模块的示例项目。

https://github.com/Ravikharatmal/MyGitRepo/tree/master/MultiModuleMavenProject

Web 依赖于 Core。 Core 依赖于第三方库 commons-lang。当我执行“mvn install”时,您可以看到最终的 web.war 文件具有 core.jar 以及 commons-lang.jar,即 core.jar 的传递依赖项。

https://github.com/Ravikharatmal/MyGitRepo/tree/master/MultiModuleMavenProject/web/target/web-0.0.1-SNAPSHOT/WEB-INF/lib

我希望这就是您正在寻找的内容。

关于java - 我如何正确配置maven多模块项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45220195/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com