#java #maven #pom.xml #maven-dependency
#java #maven #pom.xml #maven-зависимость
Вопрос:
Я консультируюсь с вопросом об использовании проекта maven с pom-упаковкой в качестве зависимости в другом проекте. Я попытался прочитать документацию maven и выполнить поиск в Интернете, но нашел несколько решений.
Проект pom-packaging состоит из нескольких подмодулей, которые являются jar-упаковкой, аналогичной:
<project ...>
<groupId>the.pom.project</groupId>
<artifactId>pom-project</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
<module>a-pom-module</module>
<module>b-pom-module</module>
<module>c-pom-module</module>
<module>d-pom-module</module>
<module>e-pom-module</module>
<module>f-pom-module</module>
</modules>
</project>
А другой проект зависит от подмодульных jar pom-project. Я пишу, как:
<project ...>
<groupId>the.another.project</groupId>
<artifactId>another-project</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>the.pom.project</groupId>
<artifactId>pom-project</artifactId>
<version>1.0</version>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Я попытался добавить проект pom как зависимость, стремясь добавить все банки подмодулей в classpath другого проекта, но, похоже, у меня это не работает.
Я не надеюсь добавить все подмодули в качестве зависимостей вручную.
Ответ №1:
Ваш способ импорта pom не работает.
Вам нужно создать новый pom, который объединяет нужные вам зависимости, а затем добавить зависимость от этого агрегированного pom в ваш проект
Создайте агрегированный pom следующим образом
<groupId>the.pom.project</groupId>
<artifactId>aggregate-pom</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>the.pom.project</groupId>
<artifactId>a-pom-module</artifactId>
<version>1.0</version>
</dependency>
.
.
.
<dependencies>
Затем используйте следующую зависимость в вашем проекте
<dependency>
<groupId>the.pom.project</groupId>
<artifactId>aggregate-pom</artifactId>
<version>1.0</version>
<type>pom</type>
</dependency>
Комментарии:
1. Спасибо, это работает. Хотя я думаю, что должен быть какой-то плагин для автоматической генерации такого агрегированного pom при развертывании.
2. Да, должен был быть флаг для генерации агрегированного pom