Comment puis-je exécuter un objectif spécifique avec une configuration particulière dans un plugin Maven quand j'ai plusieurs configurations pour cet objectif
Question
Voir config plug-in de pom.xml ci-dessous.
Je peux le faire:
mvn myplugin:myGoal
Ce qui fonctionne myGoal (les deux exécutions, je suppose), mais je veux être en mesure de choisir la première ou la deuxième exécution indépendamment.
Je sais que je peux ajouter un identifiant à l'élément d'exécution, mais comment je me réfère à cet identifiant sur la ligne de commande. Je voudrais arriver à quelque chose qui fait ce que cette commande fait imaginé:
mvn myplugin:myGoal --executionId=1
Est-ce possible, ou que je vais sur ce dans le mauvais sens?
<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>
La solution
Je peux le faire
mvn myplugin:myGoalWhich
exécute myGoal (les deux exécutions, je suppose)
Aucun d'entre eux (en supposant qu'ils avaient id
uniques). Exécutions sont liés à une phase, vous devez exécuter la phase donnée pour les déclencher.
Je sais que je peux ajouter un identifiant à l'élément d'exécution, mais comment je me réfère à cet identifiant sur la ligne de commande.
Non pris en charge. Ce qui est possible pour les plugins sur la CLI invoquées est de définir une configuration non globale dans le POM en utilisant la default-cli
de executionId
spécial, comme ceci:
<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>
Est-ce possible, ou que je vais sur ce dans le mauvais sens?
Non, pas possible. Soit passer les paramètres des profils de ligne de commande ou de l'utilisation (avec ou sans l'exécution par défaut ci-dessus).
Références
Autres conseils
L'exécution de plusieurs objectifs de la CLI est désormais pris en charge dans Maven 3.3.1 +
mvn exec:java@first-cli
mvn exec:java@second-cli
Lorsque la première / seconde cli-cli sont les ids exécution.
http: //blog.soebes. de / blog / 2015/03/17 / apache-maven-3-point-3-1-caractéristiques /
Hé, vous pouvez créer votre objectif comme ceci: -
org.myplugin:myplugin-maven-plugin:1.1.1:myGoal i.e
<groupId>:<artifactId>:<version>:<yourgoal>
Il fonctionne dans mon cas ...
L'hypothèse vous fait que si vous appelez
mvn myplugin:myGoal
Mais le problème est que vous obtiendrez un message d'erreur Cause l'exécution ont pas de identifiant unique (dans ce cas ont le même).
Vous pouvez atteindre ce que vous aimez faire via les profils que vous pouvez activer via mvn -PXYZ et mvn -PABC