У меня есть проект maven и в родительском POM, и я объявил некоторые зависимости внутри этого родительского POM. Это POM используется в дочернем POM, как показано во фрагменте кода. При компиляции проекта Child IntelliJ жалуется, что не может найти интерфейс, используемый в родительском проекте. Этот интерфейс объявлен в зависимости "anotherApp" в родительском POM.
Мое понимание зависимостей Maven заключается в том, что, посколькуЯ объявил зависимость в Parent POM, она должна наследоваться и в дочернем POM, и дочерний процесс должен иметь возможность доступа к этим зависимостям и их классам / интерфейсам без проблем.
Я пытался добавить зависимость внутри dependencyManagementтег в родительском ПОМ. Но не могу добиться того, чего ожидаю получить. Я также изучил деревья зависимостей родительских и дочерних проектов. В родительском дереве зависимостей в качестве своей зависимости отображается anotherApp, а в дочернем - в качестве зависимости отображается только родитель, в качестве зависимости через родительский элемент не отображается anotherApp.
Так выглядит мой родительский POM
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>it.app</groupId>
<artifactId>commonParent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../CommonParent/pom.xml</relativePath>
</parent>
<groupId>com.app</groupId>
<artifactId>parent</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.myapp</groupId>
<artifactId>anotherApp</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
Вот так выглядит мой дочерний POM
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>it.app</groupId>
<artifactId>commonParent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../CommonParent/pom.xml</relativePath>
</parent>
<groupId>com.app</groupId>
<artifactId>child</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.app</groupId>
<artifactId>parent</artifactId>
</dependency>
</dependencies>
</project>
В "anotherApp" объявлен интерфейс Foo. Этот интерфейс доступен родительским проектом. Но дочерний проект не может получить доступ к этому интерфейсу. IntelliJ жалуется, что не может получить доступ к этому интерфейсу.