我的项目是个springboot多模块项目,其中2个模块A,B, A的pom文件引用了B,B pom里也引用了A,现在启动报错。怎么能配置pom文件正常启动?
现在是把依赖的代码去掉了,在自己模块在写一遍,但是代码就重复了。希望通过配置文件消除这个问题。
我的项目是个springboot多模块项目,其中2个模块A,B, A的pom文件引用了B,B pom里也引用了A,现在启动报错。怎么能配置pom文件正常启动?
现在是把依赖的代码去掉了,在自己模块在写一遍,但是代码就重复了。希望通过配置文件消除这个问题。
在Spring Boot多模块项目中,解决依赖冲突的一种常见方法是使用Maven的依赖管理功能。你可以在父POM文件中定义依赖,并在子模块中继承这些依赖,从而避免重复的依赖声明。
首先,创建一个父POM文件(例如pom-parent.xml
),并在其中定义依赖。确保将<packaging>
元素设置为pom
,以便将其识别为父POM文件。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>spring-boot-multi-module</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<dependencies>
<!-- 定义依赖 -->
<dependency>
<groupId>com.example</groupId>
<artifactId>module-b</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<modules>
<!-- 指定子模块 -->
<module>module-a</module>
<module>module-b</module>
</modules>
</project>
接下来,在子模块A和B的POM文件中,将父POM文件作为依赖进行引用,并添加相应的依赖范围和配置。这可以通过<parent>
元素来完成。
module-a/pom.xml:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>module-a</artifactId>
<version>1.0.0</version>
<parent>
<groupId>com.example</groupId>
<artifactId>spring-boot-multi-module</artifactId>
<version>1.0.0</version>
</parent>
<!-- 添加子模块特有的依赖 -->
<dependencies>
<!-- 其他依赖 -->
</dependencies>
</project>
module-b/pom.xml:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>module-b</artifactId>
<version>1.0.0</version>
<parent>
<groupId>com.example</groupId>
<artifactId>spring-boot-multi-module</artifactId>
<version>1.0.0</version>
</parent>
<!-- 添加子模块特有的依赖 -->
<dependencies>
<!-- 其他依赖 -->
</dependencies>
</project>
通过这种方式,你可以在父POM文件中集中管理项目的依赖,并在子模块中通过继承这些依赖来避免重复的依赖声明。这样可以简化项目结构并减少代码重复。请确保正确配置了Maven的依赖管理路径,以便能够解析依赖关系并成功构建项目。
15 回答8.3k 阅读
8 回答6.2k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答4k 阅读
3 回答3.6k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
把公共代码抽到C模块,A,B都依赖C