Я использую Maven в проекте, который содержит несколько модулей. Когда мы выпускаем, мы развертываем модули в нашем собственном репозитории Maven. Модули проекта наследуются от родительского проекта, который определяет общие свойства, такие как используемые инструменты отчетности, местоположение SCM, репозитории и т. д.
./pom.xml
<project>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.0</version
<repositories>
<repository>
<url>repo.example.com</url>
...
</repository>
</repositories>
...
</project>
./модуль/pom.xml
<project>
<groupId>com.example</groupId>
<artifactId>module</artifactId>
<parent>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
</parent>
...
</project>
Оказывается, с этой настройкой есть проблема: когда кто-то присоединяется к проекту и пытается собрать модуль, он терпит неудачу. Это связано с тем, что parent
не будет доступен в их локальном репозитории Maven и не может быть извлечен, поскольку repo.example.com
определен только в родительском POM.
Есть ли очевидный способ обойти эту проблему, запретив определение <repositories/>
в POM каждого модуля?