Ответ 1
Вам нужно различать хранилища и репозиторий снимков. <distributionManagement>
разрешает только один <repository>
и один <snapshotRepository>
ребенок.
Как настроить проект maven для развертывания как моментальных снимков, так и выпусков в Nexus?
<distributionManagement>
<repository>
<id>InternalReleases</id>
<name>Internal Releases</name>
<url>http://192.168.16.232:8081/nexus/content/repositories/releases/</url>
</repository>
<repository>
<id>InternalSnapshots</id>
<name>Internal Snapshots</name>
<url>http://192.168.16.232:8081/nexus/content/repositories/snapshots/</url>
</repository>
</distributionManagement>
Эта конфигурация создает ошибку в Eclipse 3.8 с m2e 1.2
Project build error: Non-parseable POM D:\Workspaces\W\Parent\pom.xml: Duplicated tag: 'repository' (position: START_TAG
seen ...
Я хочу, чтобы артефакт был развернут в репозитории InternalSnapshots, когда версия pom добавлена в -SNAPSHOT и развернута в репозитории InternalReleases, когда она RELEASE. Это должно произойти с использованием одного и того же файла pom.xml и выполнения той же команды mvn deploy
.
Вам нужно различать хранилища и репозиторий снимков. <distributionManagement>
разрешает только один <repository>
и один <snapshotRepository>
ребенок.
Пример конфигурации pom.xml
<!-- http://maven.apache.org/pom.html#Distribution_Management -->
<distributionManagement>
<snapshotRepository>
<id>InternalSnapshots</id>
<name>Internal Snapshots</name>
<url>http://192.168.16.232:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>InternalReleases</id>
<name>Internal Releases</name>
<url>http://192.168.16.232:8081/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>
Фрагменты для .m2/settings.xml для установки по умолчанию Nexus
<server>
<id>thirdparty</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>InternalReleases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>InternalSnapshots</id>
<username>deployment</username>
<password>deployment123</password>
</server>
Вы можете сделать и то, и другое.
Добавьте плагин maven-release-плагина 2.5.3
Выполните следующее:
mvn deploy clean: релиз релиза: подготовить выпуск: выполнить