У меня есть проект с несколькими модулями maven.Как сделать один модуль зависимым от другого артефакта модуля?
A: parent.
B: child1.
C: child2.
B будет упакован, чтобы получить файл банку, а затем с будет использовать эту банку файл для компиляции кода.
В B, если я бегу mvn package
, это создаст b.jar
(пребывание в B/target/jars
не в B/target
-для другой цели).
В C мне нужно использовать этот код b.jar
для компиляции кода.
Теперь, от А, когда я запускаю: mvn package
. Во-первых, мне удалось создать файл b.jar
для B.
Но когда дело доходит до этапа компиляции C, похоже, что C не распознает b.jar
в пути к классам (компиляция получает ошибки, потому что код C не может импортировать класс файл из B).
Мой вопрос: Как я могу решить эту проблему?
---------- Below
являются POM файлы
A: pom.xml
<groupId>AAA</groupId>
<artifactId>A</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>C</module>
<module>B</module>
</modules>
B: pom.xml
<groupId>AAA</groupId>
<artifactId>B</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<parent>
<artifactId>A</artifactId>
<groupId>AAA</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
C: pom.xml
<parent>
<artifactId>A</artifactId>
<groupId>AAA</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>AAA</groupId>
<artifactId>C</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>AAA</groupId>
<artifactId>B</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
....
Как и в случае с лучшей практикой (не связанной с этим вопросом), модули B и C не должны объявлять свою собственную группуId и версию; они должны наследовать их от родительского (модуля A) POM. Тем не менее, им все равно нужно декларировать собственную упаковку и артефакт. –