Maven: как передать конфигурацию artifactItems в плагин копирования зависимостей из командной строки? - PullRequest
0 голосов
/ 11 июня 2018

Я бы хотел запустить Плагин копирования зависимостей из командной строки без необходимости изменения файла pom.xml.Мне нужно передать все параметры конфигурации из командной строки.Я могу найти некоторые ссылки для этого:

mvn -DuseRepositoryLayout=true dependency:copy

Проблема в том, что я не знаю, как установить свойства <artifactItems><artifactItem> из командной строки.

Как вызвать плагин для копирования зависимостей maven, передав все необходимые параметры в командной строке?

1 Ответ

0 голосов
/ 11 июня 2018

Вы, кажется, смешиваете две разные цели:

  • зависимости от копирования (на которые ссылается ваш пример):

Цель, которая копирует список артефактов изхранилище в определенных местах.

  • копия (на которую указывает ваша ссылка)

Цель, которая копирует зависимости проекта из хранилища в указанное место.

Пользовательское свойство в mojo, такое как copy-dependencies, предоставляет способ установить свойство из командной строки с синтаксисом -DMyUserProperty.

Из документации к плагину copy, которую вы ссылаетесь , вы можете прочитать, что свойство artifact имеет в качестве пользовательского свойства artifact.
Таким образом, пример, передающий его из командыстрока действительна:

mvn dependency:copy -Dartifact=mygroupId:myartifactId:myversion 

Но в той же документации плагина не указано ни одного пользовательского свойства, определенного для свойства artifactItems.

Кроме того, четко указано:

Используйте artifactItems в конфигурации POM.

Итак, вы застряли, чтобы установить artifactItems из файла POM.

Поскольку вы не хотите беспокоиться о POM и предпочитаете указывать внешние зависимости для копирования, dependency:copy-dependencies, который предоставляет службу, достаточно близкую к тому, что из copy-dependenciesдолжен лучше соответствовать вашим потребностям, поскольку в отличие от copy-dependencies, он предоставляет свойство пользователя для включения / исключения artifactIds / groupIds:

Свойство пользователя: includeArtifactIds

...

Пользовательское свойство: includeGroupIds

Вы можете написать что-то вроде:

 mvn dependency:copy-dependencies -DincludeArtifactIds="myArtifactOne,
 myArtifactTwo,..." -DincludeGroupIds="myGroupIdOne, myGroupIdTwo"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...