Я ищу способ включить все модули в проект из другого pom.xml. Поэтому в моем случае у меня есть родительский pom с упаковкой, установленной в pom. Он содержит 3 дочерних модуля, которые реализуют мои интерфейсы в другом модуле api. Я хочу динамически включать все дочерние модули в свой проект в maven.Как включить все модули из проекта pom
В этом случае я хочу включить соединитель1, разъем2, разъем3 в другой модуль, не указывая явно на разъем1,2,3.
connectors - packaging: pom
connector1 - packaging: jar
connector2 - packaging: jar
connector3 - packaging: jar
Я попытался включить коннектор pom в свой проект, но это не сработало. Я надеялся, что указание родительского пакета с pom будет включать дочерние модули, но это не сработало. Есть ли какие-либо обходные пути для того, как это сделать?
Update
Это было больше мозоль мой, потому что я хотел просто добавить один разъем и имеют все банки зависимость модуля ребенка для проекта должны быть включены. Это сделало бы pom немного проще читать.
Вместо того, чтобы зарегистрировать всю дочернюю зависимость, как так
<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector1</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector1-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector1-etl</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector1-persistence</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2-etl</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2-persistence</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2-other</artifactId>
<version>0.0.1</version>
</dependency>
...
</dependencies>
Это просто пример, чтобы прояснить первоначальный вопрос. Это не существует и, вероятно, будет иметь проблемы с репродукцией, если это сработает.
<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector1</artifactId>
<version>0.0.1</version>
<type>pom</type>
<include>submodules</include>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2</artifactId>
<version>0.0.1</version>
<type>pom</type>
<include>submodules</include>
</dependency>
</dependencies>
Если я правильно помню, я создавал модульный проект для системы упорядочения, где у меня был общий апи, что наша внутренняя система будет использовать (REST). Я создавал систему маршрутизации, где я мог направить заказ в единый центр выполнения на основе критериев заказа (страна, приоритетные налоги и т. Д.). У каждого из центров выполнения были свои собственные api (соединители).
Пример очень упрощен в первоначальном вопросе, чтобы сделать его более проблематичным более кратким. В реальном проекте каждый соединитель (1,2,3) был бы отдельным портом с множеством банок зависимости. Один для своего клиента api, затем некоторый код etl, соответствующий моему первоначальному api.
Я не помню, как я это решил. Я думаю, что мне просто нужно было включить все дочерние зависимости.
У вас есть пример проекта где-нибудь (github?), Где мы можем получить лучшее впечатление о том, что именно вы пытаетесь сделать? – khmarbaise
@RobinJonsson Вопрос не ясен. Что именно означает * include * означает здесь? Какой конечный результат вы хотите? Вы хотите, чтобы вы автоматически заполнили раздел '' в разделе 'connector' POM? Или где-то еще? Не могли бы вы немного расширить? –
Tunaki
@Tunaki В результате я хочу добавить новые пакеты «connectorX», не указывая их в качестве зависимостей где-то еще. Скажем, например, у меня есть еще один модуль, который упакован как WAR. Я хотел бы добавить зависимость от WAR к «коннекторам», и всякий раз, когда я добавляю новый «дочерний модуль» (возможно, разъем4) к коннекторам, он автоматически упаковывается в файл WAR. У меня нет желаемого формата упаковки для моих разъемов. Не имеет значения, упаковываются ли разъемы в виде отдельных JAR или uber-jar. Пока они включены в мою ВОЙНУ. –