Нахождение POM проекта.parent - PullRequest
0 голосов
/ 28 марта 2011

Я использую 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>

. / Module /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 каждого модуля?

Ответы [ 3 ]

0 голосов
/ 29 марта 2011

Вы должны рассмотреть вопрос о развертывании родительского pom.xml в вашем собственном репозитории Maven.

Таким образом, даже если новый разработчик не имеет этого родителя на своем компьютере, в первый раз, когда он попытается скомпилировать один из проектов вашего модуля, Maven загрузит родителя pom.xml в свой локальный репозиторий и затем выполнит команду доступно для модуля.

Это должно решить вашу проблему.

0 голосов
/ 12 апреля 2012

RelativePath будет работать. Однако я предпочитаю устанавливать хранилище в settings.xml

На мой взгляд, проверка родителей - это излишне, и вы должны обновить проект, когда он изменится.

0 голосов
/ 28 марта 2011

В разделе parent добавьте элемент relativePath с содержимым ...

<parent>
    ...
    <relativePath>..</relativePath>
</parent>
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...