Мы установили Archiva с двумя репозиториями, установленными по умолчанию.
Вот мои settings.xml :
<server>
<id>mycompany-release</id>
<username>admin</username>
<password>******</password>
</server>
<server>
<id>mycompany-snapshots</id>
<username>admin</username>
<password>******</password>
</server>
<mirror>
<id>mycompany-release</id>
<url>http://X.X.X.X:8080/archiva/repository/internal/</url>
<mirrorOf>external:*</mirrorOf>
</mirror>
<mirror>
<id>mycompany-snapshots</id>
<url>http://X.X.X.X:8080/archiva/repository/snapshots/</url>
<mirrorOf>apache.snapshots</mirrorOf>
</mirror>
<profile>
<id>repo</id>
<repositories>
<repository>
<id>mycompany-release</id>
<url>http://X.X.X.X:8080/archiva/repository/internal/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>mycompany-snapshots</id>
<url>http://X.X.X.X:8080/archiva/repository/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
<activeProfiles>
<activeProfile>repo</activeProfile>
</activeProfiles>
У меня есть родительский проект, который я использую, чтобы установить общую конфигурацию для всех проектов. Версия этого родительского проекта - 1-SNAPSHOT. Таким образом, во всех других проектах родительский раздел указывает на этот родительский проект с версией 1-SNAPSHOT (без элемента относительного пути). Если я разверну свой родительский проект в хранилище archiva, он будет там. Если я пытаюсь запустить какую-либо команду в другом проекте, как mvn clean, она работает, так как родительский проект был установлен во время развертывания. Но если я вручную удаляю родительский проект из своего локального репозитория и пытаюсь выполнить ту же команду, Maven возвращает сообщение об ошибке:
Неразрешимый родительский POM: не удалось найти артефакт
com.mycompany: родитель: pom: 1-SNAPSHOT в выпуске mycompany
(http://X.X.X.X:8080/archiva/repository/internal/) и
parent.relativePath указывает на неправильный локальный POM
Кажется, что родительский проект ищется в репозитории релизов, в то время как я ожидал, что он был найден в репозитории моментальных снимков.
Спасибо за вашу помощь
РЕДАКТИРОВАТЬ: Вот одна часть дочернего POM:
<parent>
<groupId>com.mycompany</groupId>
<artifactId>Parent</artifactId>
<version>1-SNAPSHOT</version>
</parent>
<groupId>com.mycompany</groupId>
<artifactId>child</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
Если я удаляю родительский раздел и запускаю команду mvn help :ffective-pom, я получаю (отображаются только репозитории):
<repositories>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>mycompany-release</id>
<url>http://X.X.X.X:8080/archiva/repository/internal/</url>
</repository>
<repository>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>mycompany-snapshots</id>
<url>http://X.X.X.X:8080/archiva/repository/snapshots/</url>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
ПРИМЕЧАНИЕ: , если я заменяю родительскую версию на 1 (вместо 1-SNAPSHOT), она работает.