このエラーには多くの見出しがあります。しかし私は私のための解決策を見つけることができません。プロジェクトのビルドパスでサイクルが検出されました
マルチモジュールプロジェクトを作成します。 parentProject
,projectA
,projectD
,projectUtil
およびprojectW
。 projectW
のパッケージは戦争であり、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ベース>コンパイラ - >ビル - >円形 依存
Test.javaが正常に働いていたが、今原因この警告には設置しないでMavenのです。誰も私に次の例外を持つソリューションを提案することができますか?
Test.java
ClassA a = new ClassA();
a.getD().mrbDunya();
ClassD d = new ClassD();
d.getB().sayHello();
EDIT
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>
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>
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>
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>
pomファイルを追加します – Jens
@JensのprojectWのPOMファイルまたはそのすべて? –
あなたは何らかの形で循環依存を削除する必要があります。これをクラスを動かすことで行うことができない場合は、インタフェースを定義し、実装クラスではなくインタフェースに依存するのに役立ちます。 – Henry