Развертывание артефакта и источников SNAPSHOT на Nexus из командной строки Maven - PullRequest
4 голосов
/ 06 января 2012

Я пытаюсь развернуть один EXE-файл, и он заархивировал исходный файл в Sonatype Nexus с помощью командной строки maven.Файлы должны быть развернуты как SNAPSHOT.

Итак, у меня есть 2 файла:

-testXYZ.exe and source file
-testXYZ.zip

Используя maven 2.2.1 и команду, описанную здесь:

mvn deploy:deploy-file -Durl=file:///home/me/m2-repo \
                       -DrepositoryId=some.repo.id \
                       -Dfile=./path/to/artifact-name-1.0.jar \
                       -DpomFile=./path/to/pom.xml \
                       -Dsources=./path/to/artifact-name-1.0-sources.jar \
                       -Djavadoc=./path/to/artifact-name-1.0-javadoc.jar

Я могуразвернуть EXE, но не может развернуть исходный код, потому что maven 2.2.1 использует deploy-plugin v2.5, и эта команда не поддерживается до v2.7.Мне не разрешено использовать более новые версии maven, поэтому я пробую другой подход.

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

call mvn deploy:deploy-file -DgroupId=com.xyz -DartifactId=testXYZ -Dversion=1.1.116-SNAPSHOT -Dpackaging=zip -Dfile=testXYZ.zip -Dclassifier=sources -Durl=http://build:8081/nexus/content/repositories/snapshots -DrepositoryId=nexus
call mvn deploy:deploy-file -DgroupId=com.xyz -DartifactId=testXYZ -Dversion=1.1.116-SNAPSHOT -Dpackaging=exe -Dfile=testXYZ.exe -Durl=http://build:8081/nexus/content/repositories/snapshots -DrepositoryId=nexus

После развертывания я ищу testXYZ и нажимаю на ссылку для скачивания источника артефакта.Nexus говорит:

«Элемент не найден по пути» com.xyz:testXYZ:1.1.116-SNAPSHOT:c=sources:e=jar"!"

Проблема в том, как maven загружает эти артефакты:

Line form log file while source is uploading:
Uploaded: http://build:8081/nexus/content/repositories/snapshots/com/xyz/testXYZ/1.1.116-SNAPSHOT/testXYZ-1.1.116-20120106.111705-1-sources.zip
Line form log file while Main artifact is uploading:
Uploaded: http://build:8081/nexus/content/repositories/snapshots/com/xyz/testXYZ/1.1.116-SNAPSHOT/testXYZ-1.1.116-20120106.111709-2.exe

Уведомление 111705-1 и 111705-2.Последнее число должно быть таким же, если мы хотим, чтобы Nexus мог генерировать правильные ссылки.

Этот подход описан здесь:

Развертывание артефакта, его источников и javadoc с использованием команды maven deploy: deploy-плагин файла

и здесь:

http://maven.apache.org/plugins/maven-install-plugin/examples/installing-secondary-artifacts.html

и он работает для фиксированных версий (например, 1.1.116) , ноне для SNAPSHOT.

Exe и Zip файлы могут быть развернуты на Nexus (например, файлы JAR), если используется фиксированная версия.

Итак, вопрос: Есть лиспособ развертывания артефактов и исходных SNAPSHOT из командной строки в Sonatype Nexus и чтобы быть уверенным, что эти файлы можно загрузить, щелкнув ссылки на источники и артефакты?

Примечание. Если я отключу суффикс меток времени, это может сработать,но я не хочу этого делать.

-DuniqueVersion=false

Спасибо,

Марьян

1 Ответ

1 голос
/ 10 января 2012

Я нашел частичное решение этой проблемы. Я могу назвать конкретную версию maven-deploy-plugin следующим образом:

mvn org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file...

Таким образом, артефакты и источники SNAPSHOT могут быть развернуты на Nexus, чтобы избежать каких-либо проблем с загрузкой, но он ведет себя как

-DuniqueVersion = ложь

все еще там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...