ошибка maven при использовании intellij ссылается на себя

#java #maven #intellij-idea

#java #maven #intellij-idea

Вопрос:

У меня есть 2 простых pom.xml основной родительский проект и модуль, который использует проект main project pom.xml :

 <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.clouddispatcher</groupId>
    <artifactId>clouddispatcher</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>aws-manager</module>
    </modules>
    <dependencies>
        <dependency>
            <groupId>com.clouddispatcher</groupId>
            <artifactId>aws-manager</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <properties>
        <aws.java.sdk.version>1.11.875</aws.java.sdk.version>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencyManagement>
        <dependencies>

            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk</artifactId>
                <version>${aws.java.sdk.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>
  

и модуль 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">
    <parent>
        <artifactId>clouddispatcher</artifactId>
        <groupId>com.clouddispatcher</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>aws-manager</artifactId>
    <dependencies>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk</artifactId>
        </dependency>
    </dependencies>
</project>
  

теперь, когда я запускаю :

 mvn clean install
  

Я продолжаю получать эту ошибку :

 The build could not read 1 project -> [Help 1]
  
  The project com.clouddispatcher:aws-manager:1.0-SNAPSHOT (C:Devmyjavaclouddispatcheraws-managerpom.xml) has 1 error
    'dependencies.dependency. com.clouddispatcher:aws-manager:1.0-SNAPSHOT' for com.clouddispatcher:aws-manager:1.0-SNAPSHOT is referencing itself. @ com.clouddispatcher:clouddispatcher:1.0-SNAPSHOT, C:Devmyjavaclouddispatcherpom.xml, line 23, column 21
To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.
For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
  

введите описание изображения здесь

Комментарии:

1. Почему у вашего родителя есть зависимость от модуля? Не имеет смысла.

2. в родительском классе я использую: AWSManager awsManager = new AWSManager(); который является модулем

3. Ваш родительский модуль, который имеет упаковку pom , не содержит никакого исходного кода, поэтому это не имеет смысла… Лучше всего было бы создать пример проекта на github…

4. я добавил изображение с файловой структурой

Ответ №1:

Позвольте мне более подробно объяснить суть khmarbaise:

  1. У родителей не может быть классов Java. Вам необходимо удалить классы из родительского.
  2. Вы не можете определить циклические зависимости, т. Е. Если A является родительским элементом B, он не может иметь B в качестве зависимости.

Вам необходимо провести рефакторинг вашего проекта, чтобы соответствовать этим критериям, например, путем перемещения классов из родительского модуля во второй модуль.