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

StackOverflow https://stackoverflow.com/questions/3448648

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>
Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top