Использование Maven-3 привело к ошибке Http 409 при повторном развертывании с archiva

#http #maven-3 #archiva

#http #maven-3 #archiva

Вопрос:

Я развертываю файл jar в репозиторий maven (archiva)

pom.xml :

 <distributionManagement>
  <repository>      
    <id>archiva.internal</id>
    <uniqueVersion>false</uniqueVersion>
    <name>Internal Release Repository</name>
    <url>http://server:8080/archiva/repository/internal</url>
  </repository>
  <snapshotRepository>
    <id>archiva.snapshots</id>
    <uniqueVersion>false</uniqueVersion>
    <name>Internal Snapshot Repository</name>
    <url>http://server:8080/archiva/repository/internal/snapshots</url>
  </snapshotRepository>
</distributionManagement>
  

settings.xml:

 <servers>
    <server>
        <id>archiva.internal</id>
        <username>user</username>
        <password>password</password>
        <filePermissions>664</filePermissions>
        <directoryPermissions>775</directoryPermissions>
    </server>
    <server>
        <id>archiva.snapshots</id>
        <username>user</username>
        <password>password</password>
        <filePermissions>664</filePermissions>
        <directoryPermissions>775</directoryPermissions>
    </server>

</servers>
  

Первое развертывание maven прошло успешно,

 Uploading: http://server:8080/archiva/repository/internal/com/test/maven-metadata.xml
Uploaded: http://server:8080/archiva/repository/internal/com/test/maven-metadata.xml (306 B at 2.4 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.843s
[INFO] Finished at: Mon Nov 07 17:09:49 EST 2011
[INFO] Final Memory: 5M/11M
  

Если я попытаюсь повторно развернуть тот же артефакт, я получаю:

 Failed to transfer file: http://server:8080/archiva/repository/internal/com/test.jar. Return code is: 409 -> [Help 1]
  

Возможно ли повторно развернуть тот же артефакт с той же версией, или мне нужно вручную удалить артефакт из архива перед повторным развертыванием?

Ответ №1:

Как администратор, перейдите на страницу репозиториев и отредактируйте управляемый репозиторий internal — там вы можете снять флажок Блокировать повторное развертывание выпущенных артефактов.

Однако я бы не рекомендовал это в целом. Как только что-то есть, его можно загрузить. После загрузки он может быть кэширован Maven. Если вы измените его, вы не будете знать, что «настоящая» версия используется повсеместно.

Номера версий дешевы — лучше использовать новый.

Комментарии:

1. Боюсь, на самом деле это не решение, Бретт. Это всего лишь обходной путь. В любом случае, спасибо.

2. можете ли вы уточнить, @mschonaker? 409 — это функция при повторном развертывании существующего артефакта — единственный способ предотвратить это — отключить функцию или удалить / повторно добавить, как сказано в оригинальном постере. В любом случае я не рекомендую этого, а вместо этого предлагаю развернуть с новым номером версии.

3. Вы не интересуетесь причиной проблемы, и ваше решение основано на предположении. Сегодня я обнаружил, что 409 был сброшен из-за прав доступа к файлам.