Как выполнить определенную задачу с определенной конфигурацией в плагине Maven, когда у меня есть несколько конфигураций для этой цели
См. конфигурацию плагина из pom.xml ниже.
Я могу сделать:
mvn myplugin:myGoal
Что запускает myGoal (оба исполнения я предполагаю), но я хочу иметь возможность выбирать либо первое, либо второе выполнение независимо.
Я знаю, что я могу добавить id в элемент выполнения, но как я могу ссылаться на этот идентификатор в командной строке. Я хотел бы получить то, что делает то, что делает эта воображаемая команда:
mvn myplugin:myGoal --executionId=1
Возможно ли это, или я собираюсь сделать это неправильно?
<plugin>
<groupId>org.myplugin</groupId>
<artifactId>myplugin-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<goals>
<goal>myGoal</goal>
</goals>
<configuration>
<myParam>cats</myParam>
</configuration>
</execution>
<execution>
<goals>
<goal>myGoal</goal>
</goals>
<configuration>
<myParam>dogs</myParam>
</configuration>
</execution>
</executions>
</plugin>
Ответы
Ответ 1
Я могу сделать mvn myplugin:myGoalWhich
запускает myGoal (оба исполнения, я полагаю)
Ни один из них (при условии, что у них есть уникальный id
). Казни связаны с фазой, вам нужно запустить заданную фазу, чтобы вызвать их.
Я знаю, что я могу добавить id в элемент выполнения, но как я могу ссылаться на этот идентификатор в командной строке.
Не поддерживается. То, что возможно для подключаемых модулей в CLI, заключается в определении конфигурации не глобальной в POM с помощью специального default-cli
executionId
, например:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
<descriptorRef>project</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
Возможно ли это, или я собираюсь сделать это неправильно?
Нет, это невозможно. Либо передайте параметры в командной строке, либо используйте профили (с или без выполнения вышеуказанного исполнения по умолчанию).
Ссылки
Ответ 2
Выполнение нескольких целей из CLI теперь поддерживается в Maven 3.3.1 +
mvn exec:[email protected]
mvn exec:[email protected]
Где first-cli/second-cli являются идентификаторами выполнения.
http://blog.soebes.de/blog/2015/03/17/apache-maven-3-dot-3-1-features/
Ответ 3
Эй вы можете создать свою цель следующим образом: -
org.myplugin:myplugin-maven-plugin:1.1.1:myGoal i.e
<groupId>:<artifactId>:<version>:<yourgoal>
Это работает в моем случае...
Ответ 4
Предположение, которое вы сделали, если вы вызываете
mvn myplugin:myGoal
Но проблема в том, что вы получите сообщение об ошибке, потому что выполнение не имеет уникального идентификатора (оба в этом случае имеют одинаковый).
Вы можете достичь того, что вам нравится делать через профили, которые вы можете активировать через mvn -PXYZ и mvn -PABC