Я создаю NAR на нескольких платформах (Mac и Windows). Сборка сложна и не может быть выполнена через плагин Maven NAR как таковой, но я сам создаю файлы nar и использую инструмент командной строки mvn
для развертывания.отдельно публиковать вложения maven
Типичный способ развертывания - один снимок, например.
mvn deploy:deploy-file \
-Dfile=foobar.jar \
-Dpackaging=jar \
-Dfiles=foobar-x86_64-MacOSX-gcc-shared.nar,foobar-x86_64-Windows-MSVC-shared.nar \
-Dclassifiers=x86_64-MacOSX-gcc-shared,x86_64-Windows-MSVC-shared \
-Dtypes=nar,nar \
-DgroupId=com.example \
-DartifactId=foobar \
-Dversion=1.0.0-SNAPSHOT \
-Durl=$URL \
-DrepositoryId=nexus
Однако, поскольку сборки выполняются на разных блоках, шаг публикации не может произойти одним выстрелом. В идеале, я хотел бы иметь возможность «присоединить» вложения к основному артефакту по завершении сборки. т. е,
Выполнить один раз:
mvn deploy:deploy-file \
-Dfile=foobar.jar \
-Dpackaging=jar \
-DgroupId=com.example \
-DartifactId=foobar \
-Dversion=1.0.0-SNAPSHOT \
-Durl=$URL \
-DrepositoryId=nexus
Тогда на Mac построить ведомым:
mvn deploy:deploy-file \
-Dfiles=foobar-x86_64-MacOSX-gcc-shared.nar \
-Dclassifiers=x86_64-MacOSX-gcc-shared \
-Dtypes=nar \
-DgroupId=com.example \
-DartifactId=foobar \
-Dversion=1.0.0-SNAPSHOT \
-Durl=$URL \
-DrepositoryId=nexus
Тогда на строительство Windows, ведомым:
mvn deploy:deploy-file \
-Dfiles=foobar-x86_64-Windows-MSVC-shared.nar \
-Dclassifiers=x86_64-Windows-MSVC-shared \
-Dtypes=nar \
-DgroupId=com.example \
-DartifactId=foobar \
-Dversion=1.0.0-SNAPSHOT \
-Durl=$URL \
-DrepositoryId=nexus
Первая команда работает отлично, конечно. Но две команды ведомого устройства не работают с
потому что он считает, что ему необходим первичный артефакт.
Как я могу указать, что я , добавив к публикации, не создавая совершенно новую?
Жаль, что Maven не позволяет добавлять артефакты. :(Но этот подход - лучший способ, учитывая ограничения. Спасибо! – paleozogt