Использование maven deploy-file
Читая док. из deploy:deploy-file
(https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html), кажется, что единственными обязательными параметрами являются обязательные параметры <file>, <repositoryId> and <url>
, тем не менее, когда я запускаю:
mvn deploy:deploy-file -Durl={url} -DrepositoryId={repoId} -Dfile=D:\Users\nunito\IdeaProjects\calzada\target\calzada.zip
У меня такая ошибка:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file (default-cli) on project oib-kw-guards-web: The artifact i
nformation is incomplete or not valid:
[ERROR] [0] 'groupId' is missing.
[ERROR] [1] 'artifactId' is missing.
[ERROR] [2] 'version' is missing.
Ответы
Я обычно использую deploy:deploy-file
в командной строке, когда у меня есть сторонний артефакт без pom.xml
:
cmd /v /c "set a=an-artifact-name&& set g=com.company.xxx&& \
mvn deploy:deploy-file -Dfile=C:\path\to\!a!.jar -Dpackaging=jar -DgroupId=!g! -DartifactId=!a! \
-Dversion=1.0-DEV-SNAPSHOT -DrepositoryId=nexus \
-Durl=http://company.com/nexus/content/repositories/company-snapshots/"
Все, что вам нужно сделать, это изменить a
и g
в начале команды.
Вы можете добавить версию v, если у вас есть конкретная версия, и поместить ее в выпускную часть вашего Nexus:
cmd /v /c "set a=an-artifact-name&& set g=com.company.xxx&& && set v=1.2.3&& \
mvn deploy:deploy-file -Dfile=C:\path\to\!a!.jar -Dpackaging=jar -DgroupId=!g! -DartifactId=!a! \
-Dversion=!v! -DrepositoryId=nexus \
-Durl=http://company.com/nexus/content/repositories/company-releases/"
Страница "Использование" плагина (https://maven.apache.org/plugins/maven-deploy-plugin/usage.html) состояния:
Если следующая необходимая информация не указана каким-либо образом, цель не удастся:
- файл артефакта для развертывания
- группа, артефакт, версия и упаковка файла для развертывания. Их можно взять из указанного файла pomFile и переопределить или указать с помощью командной строки. Когда pomFile содержит родительский раздел, groupId родительского элемента может учитываться, если groupId не указан далее для текущего проекта или в командной строке.
- информация о репозитории: URL-адрес для развертывания и сопоставление repositoryId с разделом сервера в файле settings.xml. Если вы не укажете repositoryId, Maven попытается извлечь информацию для аутентификации, используя идентификатор remote-repository.
Таким образом, вам нужно либо указать координаты, либо предоставить файл POM.