maven 循环依赖的问题:
1.模块级别
1.1.2报错信息
1.1.3网上解决方案demo:
使用build-helper-maven-plugin 插件;
过程如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>test</groupId> <artifactId>test</artifactId> <version>1.0</version> <packaging>jar</packaging>
<name>test</name> <url>http://maven.apache.org</url>
<properties> <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding> <module.a.src>../p2/src/main/java</module.a.src> <module.b.src>../p3/src/main/java</module.b.src> <module.c.src>../p4/src/main/java</module.c.src> </properties> <build> <plugins><!-- 解决模块相互依赖,综合所有相互依赖代码统一编译 --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${module.a.src}</source> <source>${module.b.src}</source> <source>${module.c.src}</source> </sources> </configuration> </execution> </executions> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>
</project>
|
测试结果:
P1,p2,p3 完成正确编译。
2.工程级别方案:
2.1 报错信息:
3.代码级别:
Spring 循环依赖,暂无
4.方法级别
Maven的transitive依赖机制解决。
重构的思路:
4.1 平移思路:
4.2.下移的方法:、
四。代码方案: