Могу ли я включить mvn deploy: deploy-file в pom или настройки.xml вместо цели cli
Мне нужно развернуть пользовательский jar в Artifactory вместе с jar, сгенерированным из моего проекта Java. В настоящее время единственный метод, который я могу найти, - это цель командной строки с помощью:
mvn deploy:deploy-file -DgroupId=<group-id>
-DartifactId=<artifact-id>
-Dversion=<version>
-Dpackaging=<type-of-packaging>
-Dfile=<path-to-file>
-Durl=<url-of-the-repository-to-deploy>
есть ли способ включить это в файл POM? Как плагин или что-то?
4 ответов
конечно. Просто определите выполнение maven-deploy-plugin:deploy-file
цель привязана к deploy
фаза, настроенная с вашими значениями. При развертывании проекта это выполнение будет вызвано, и JAR будет развернут.
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<executions>
<execution>
<id>deploy-file</id>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<file><!-- path-to-file --></file>
<url><!-- url-of-the-repository-to-deploy --></url>
<groupId><!-- group-id --></groupId>
<artifactId><!-- artifact-id --></artifactId>
<version><!-- version --></version>
<packaging><!-- type-of-packaging --></packaging>
</configuration>
</execution>
</executions>
</plugin>
обратите внимание, что вам, вероятно, нужно будет добавить repositoryId
также. Это идентификатор сервера для сопоставления на <id>
под на settings.xml
.
вы можете загрузить пользовательские настройки maven.в XML в TeamCity, где вы должны указать distributionManagement и сервер, как указано на странице документации. После этого, если вы измените шаг сборки maven для использования загруженных параметров, развертывание будет выполнено путем простого добавления deploy gial к набору выполненных целей на этом шаге.
на работа с Maven раздел в руководстве Artifactory подробно охватывает эту тему, в частности часть о развертывание артефактов.
Кроме того, вы можете посмотреть скринкаст о установка Artifactory в качестве репозитория Maven.
для развертывания артефактов сборки через Artifactory необходимо добавить distributionManagement элемент в файле POM проекта с URL-адресом целевого локального репозитория, к которому вы требуется развернуть артефакты. Кроме того, вам нужно будет настроить учетные данные сервера Artifactory в настройках.XML-файл.
Artifactory может помочь в создании фрагмента distributionManagement и параметров.xml (см. больше информации в ссылках, которые я предоставил выше).
Я лично не думаю, что объявление его в POM является хорошим подходом.
Например, если у вас есть многомодульный проект Maven, состоящий из дочерних POMs, наследуемых от родительского POM / super POM, и пользовательский jar для загрузки содержится только в 1 дочернем модуле, то вам придется явно объявить конфигурацию в Родительском POM (так как mvn deploy
обычно используется для выполнения superpom) и объявляет каждый другой дочерний POM, чтобы пропустить выполнение конфигурации, которая загромождает Структура пом.
лучшим подходом было бы написать сценарий и связать его с вашими конфигурациями запуска deploy
цель с deploy:deploy-file
цель-в конце жизненного цикла сборки.