Java 在maven中项目的构建路径中检测到一个循环
关于这个错误有很多标题。但我找不到解决办法 我将创建一个多模块项目Java 在maven中项目的构建路径中检测到一个循环,java,maven,Java,Maven,关于这个错误有很多标题。但我找不到解决办法 我将创建一个多模块项目parentProject、projectA、projectD、projectUtil和projectWprojectW的包装为war,包含projectA、projectD和projectUtiljar文件 projectParent ├───projectA │ ├───src │ │ └───main/java/projectA │ │ ├───ClassA.java │ │ └─
parentProject
、projectA
、projectD
、projectUtil
和projectW
projectW
的包装为war,包含projectA
、projectD
和projectUtil
jar文件
projectParent
├───projectA
│ ├───src
│ │ └───main/java/projectA
│ │ ├───ClassA.java
│ │ └───ClassB.java
│ └───pom.xml ---- packaging = jar & dependencies = projectD and projectUtil
├───projectD
│ ├───src
│ │ └───main/java/projectD
│ │ ├───ClassC.java
│ │ └───ClassD.java
│ └───pom.xml ---- packaging = jar & dependencies = projectA and projectUtil
├───projectUtil
│ ├───src
│ │ └───main/java/projectUtil
│ │ └───StringUtil.java
│ └───pom.xml ---- packaging = jar & dependencies = no dependency
├───projectW
│ ├───src
│ │ └───main/java/projectW
│ │ └───Test.java
│ └───pom.xml ---- packaging = war & dependencies = projectA, projectD and projectUtil
└───pom.xml ---- packaging = pom & modules = projectA, project D, projectUtil and projectW
在项目的生成路径中检测到循环之类的错误。我把错误变成了警告,就像互联网上的解决方案一样
Windows->首选项->Java->编译器->构建->循环
依赖关系
java已成功运行,但由于此警告,maven现在未安装。除了以下例外,有人能给我一个解决方案吗
Test.java
ClassA a = new ClassA();
a.getD().mrbDunya();
ClassD d = new ClassD();
d.getB().sayHello();
编辑
parentProject/pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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>com.earslan</groupId>
<artifactId>projectParent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Project Parent</name>
<modules>
<module>projectA</module>
<module>projectD</module>
<module>projectUtil</module>
<module>projectW</module>
</modules>
</project>
4.0.0
艾尔斯兰公司
项目父级
1.0-快照
聚甲醛
项目父级
项目A
投射
projectUtil
项目W
projectA/pom.xml
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.earslan</groupId>
<artifactId>projectParent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>projectA</artifactId>
<packaging>jar</packaging>
<name>Project A</name>
<dependencies>
<dependency>
<groupId>com.earslan</groupId>
<artifactId>projectD</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.earslan</groupId>
<artifactId>projectUtil</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.0.0
艾尔斯兰公司
项目父级
1.0-快照
项目A
罐子
项目A
艾尔斯兰公司
投射
1.0-快照
艾尔斯兰公司
projectUtil
1.0-快照
org.apache.maven.plugins
maven编译器插件
3.3
1.7
1.7
projectUtil/pom.xml
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.earslan</groupId>
<artifactId>projectParent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>projectUtil</artifactId>
<packaging>jar</packaging>
<name>Project Util</name>
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.0.0
艾尔斯兰公司
项目父级
1.0-快照
projectUtil
罐子
项目Util
org.apache.maven.plugins
maven编译器插件
3.3
1.7
1.7
projectW/pom.xml
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.earslan</groupId>
<artifactId>projectParent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>projectW</artifactId>
<packaging>war</packaging>
<name>Project W</name>
<dependencies>
<!-- Project Files Dependency -->
<dependency>
<groupId>com.earslan</groupId>
<artifactId>projectA</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.earslan</groupId>
<artifactId>projectD</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.earslan</groupId>
<artifactId>projectUtil</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- JSF Dependency -->
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
<!-- PrimeFaces Dependency -->
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>6.1</version>
</dependency>
<dependency>
<groupId>org.primefaces.themes</groupId>
<artifactId>bootstrap</artifactId>
<version>1.0.10</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>prime-repo</id>
<name>PrimeFaces Maven Repository</name>
<url>http://repository.primefaces.org</url>
<layout>default</layout>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.0.0
艾尔斯兰公司
项目父级
1.0-快照
项目W
战争
项目W
艾尔斯兰公司
项目A
1.0-快照
艾尔斯兰公司
投射
1.0-快照
艾尔斯兰公司
projectUtil
1.0-快照
com.sun.faces
JSFAPI
2.2.2
com.sun.faces
jsf impl
2.2.2
javax.servlet
javax.servlet-api
3.0.1
org.primefaces
素面
6.1
org.primefaces.themes
独自创立
1.0.10
文件上传
文件上传
1.3
优质回购
PrimeFacesMaven存储库
http://repository.primefaces.org
违约
org.apache.maven.plugins
maven编译器插件
3.3
1.7
1.7
├──项目A│ ├───src
│ │ └───main/java/projectA
│ │ ├───ClassA.java
│ │ └───ClassB.java
│ └───pom.xml----packaging=jar&dependencies=projectD和projectUtil
├───项目D
│ ├───src
│ │ └───main/java/projectD
│ │ ├───ClassC.java
│ │ └───ClassD.java
│ └───pom.xml----packaging=jar&dependencies=projectA和projectUtil 项目A依赖于项目D,项目D依赖于项目A,项目A显然是循环的 您需要通过以下两种方式进行重构:
添加pomfiles@JensprojectW的pom文件还是全部?您需要删除循环依赖项。如果不能通过移动类来实现这一点,那么定义接口和依赖接口可能会有所帮助,而不是依赖于实现类。@emrealslan