maven 循环依赖的问题:

1.模块级别

 

maven 循环依赖的问题:

 

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>

 

 

 

测试结果:

maven 循环依赖的问题:

P1,p2,p3 完成正确编译。

 

 

2.工程级别方案:

2.1  报错信息:

 

 

 

 

 

 

3.代码级别:

Spring 循环依赖,暂无

 

4.方法级别

Maven的transitive依赖机制解决。

 

 

 

重构的思路:

 4.1 平移思路:

 

 

4.2.下移的方法:、

 

 

四。代码方案: