Подтвердить что ты не робот

Как настроить проект maven для развертывания как моментальных снимков, так и выпусков в Nexus?

Как настроить проект 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.

4b9b3361

Ответ 1

Вам нужно различать хранилища и репозиторий снимков. <distributionManagement> разрешает только один <repository> и один <snapshotRepository> ребенок.

http://maven.apache.org/pom.html#Distribution_Management

Ответ 2

Пример конфигурации 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>  

Ответ 3

Вы можете сделать и то, и другое.

Добавьте плагин maven-release-плагина 2.5.3

Выполните следующее:

mvn deploy clean: релиз релиза: подготовить выпуск: выполнить