8 сент. 2011 г.

Snapshot и репозиторий Nexus thirdparty

Обнаружил, что разработка DisplayTag всё ещё продолжается, хотя артефакты 1.3-SNAPSHOT можно найти только в репозитории SourceForge. Поэтому скачал исходники из SVN, пофиксил JUnit-тесты тупых америкосов (в моей локали по умолчанию при выводе в текст дня недели получится что угодно, но никак не "tuesday"), собрал локально (сначала mvn package, затем mvn source:jar) и попробовал залить в свой репозиторий thirdparty (как я это обычно делал для Java plugin и JDBC-драйверов Oracle и MS SQL):


#!/bin/sh
GID=displaytag
VER=1.3-SNAPSHOT
URL=http://maven:5050/nexus/content/repositories/thirdparty
for NAME in displaytag; do
  mvn deploy:deploy-file -DgroupId=$GID -DartifactId=$NAME -Dversion=$VER -Dpackaging=jar -Dfile=./$NAME-$VER.jar \
    -DrepositoryId=nexus -Durl=$URL -DuniqueVersion=false
  mvn deploy:deploy-file -DgroupId=$GID -DartifactId=$NAME -Dversion=$VER -Dpackaging=jar -Dfile=./$NAME-$VER-sources.jar -Dclassifier=sources \
    -DrepositoryId=nexus -Durl=$URL -DuniqueVersion=false
done

как вдруг...

[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error deploying artifact: Failed to transfer file: http://maven:5050/nexus/content/repositories/thirdparty/displaytag/displaytag/1.3-SNAPSHOT/displaytag-1.3-SNAPSHOT.jar. Return code is: 400

После поисков в интернетах и напряжённой работы мысли я всё-таки понял, что снэпшоты в thirdparty просто так разместить нельзя, т.к. Policy для thirdparty репозитория Nexus по умолчанию установлено в "Release", а не "Snapshot". Вариантов выхода три: менять Policy (что нежелательно) или заливать thirdparty SNAPSHOT в репозиторий snapshots (что я успешно сделал), или самому делать release, а то они уже два года возятся...

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

Отправить комментарий