Почему Maven (неправильно?) развертывает мой SNAPSHOT как в репозитории релиза, так и в репозитории моментальных снимков?

В настоящее время я испытываю проблему при попытке настроить проект для развертывания во внутреннем репозитории nexus. Поскольку я новичок в Maven в целом, я ожидаю, что есть кое-что, чего я не совсем понимаю в том, как настроить управление распределением.

Основная проблема заключается в том, что когда я выполняю «mvn deploy», артефакт успешно развертывается в репозиторий снимков, но Maven также пытается развернуть его в репозитории релизов, что терпит неудачу ... как и должно. Насколько я понимаю, моя текущая конфигурация НЕ должна развертываться в репозитории релизов.

Я включил различные элементы конфигурации ниже, но мне интересно, действительно ли я должен управлять разделом с помощью профиль, так что сборки моментальных снимков только определены, а сборки выпуска - только определены.

Любая помощь / разъяснения по этому поводу были бы очень признательны.

У меня есть следующее в моем POM для управления распространением:

<distributionManagement>
<repository>
  <id>internal-releases</id>
  <name>Internal Releases</name>
  <url>http://localhost:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
  <id>internal-snapshots</id>
  <name>Internal Snapshots</name>
  <url>http://localhost:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>

В другом месте в POM У меня есть следующие настройки, позволяющие использовать эти репозитории для получения артефактов:

<repositories>
<repository>
  <id>internal-releases</id>
  <url>http://localhost:8081/nexus/content/repositories/releases</url>
  <snapshots><enabled>false</enabled></snapshots>
</repository>
<repository>
  <id>internal-snapshots</id>
  <url>http://localhost:8081/nexus/content/repositories/snapshots</url>
  <snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- other repos, etc, etc -->
</repositories>

У меня есть правильные настройки в моем settings.xml, чтобы предоставить учетные данные для публикации в этом тестовом экземпляре нексуса, запущенном на моем компьютере, и на самом деле он успешно развертывает моментальный снимок.

Проблема в том, что он также пытается развернуть моментальный снимок в репозитории выпуска, который настроен на запрет создания моментальных снимков.

Выходные данные "mvn deploy" включают следующее:

[INFO] [deploy:deploy {execution: default-deploy}]
[INFO] Retrieving previous build number from internal-snapshots
Uploading: http://localhost:8081/nexus/content/repositories/snapshots/com/internal/service/1.0.0-SNAPSHOT/service-1.0.0-20101104.170338-8.war
405K uploaded  (service-1.0.0-20101104.170338-8.war)
[INFO] Retrieving previous metadata from internal-snapshots
[INFO] Uploading repository metadata for: 'snapshot com.internal:service:1.0.0-SNAPSHOT'
[INFO] Retrieving previous metadata from internal-snapshots
[INFO] Uploading repository metadata for: 'artifact com.internal:service'
[INFO] Uploading project information for service 1.0.0-20101104.170338-8
[INFO] [deploy:deploy-file {execution: default}]
[INFO] Retrieving previous build number from remote-repository
[INFO] repository metadata for: 'snapshot com.internal:service:1.0.0-SNAPSHOT' could not be found on repository: remote-repository, so will be created
Uploading: http://localhost:8081/nexus/content/repositories/releases/com/internal/service/1.0.0-SNAPSHOT/service-1.0.0-20101104.170338-1.jar
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error deploying artifact: Failed to transfer file: http://localhost:8081/nexus/content/repositories/releases/com/internal/service/1.0.0-SNAPSHOT/service-1.0.0-20101104.170338-1.jar. Return code is: 400

Журнал Nexus содержит следующее (как я и ожидал):

jvm 1    | 2010-11-04 13:03:39 INFO  [p-759477796-118] - o.s.n.p.m.m.M2Repos~          - Storing of item releases:/com/internal/service/1.0.0-SNAPSHOT/service-1.0.0-20101104.170338-1.jar is forbidden by Maven Repository policy. Because releases is a RELEASE repository
jvm 1    | 2010-11-04 13:03:39 ERROR [p-759477796-118] - o.s.n.r.ContentPlex~          - Got exception during processing request "PUT http://localhost:8081/nexus/content/repositories/releases/com/internal/service/1.0.0-SNAPSHOT/service-1.0.0-20101104.170338-1.jar": Storing of item releases:/com/internal/service/1.0.0-SNAPSHOT/service-1.0.0-20101104.170338-1.jar is forbidden by Maven Repository policy. Because releases is a RELEASE repository
6
задан imaginaryboy 4 November 2010 в 17:28
поделиться