Come posso eseguire un obiettivo specifico con una configurazione particolare in un plug-in Maven quando ho diverse configurazioni per quell'obiettivo

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

Domanda

Vedi la configurazione del plugin da pom.xml di seguito.

Posso fare:

mvn myplugin:myGoal

Che esegue myGoal (suppongo entrambe le esecuzioni) ma voglio poter scegliere la prima o la seconda esecuzione in modo indipendente.

So che posso aggiungere un ID all'elemento di esecuzione, ma come faccio a fare riferimento a quell'ID sulla riga di comando.Mi piacerebbe arrivare a qualcosa che faccia quello che fa questo comando immaginario:

mvn myplugin:myGoal --executionId=1

È possibile o sto andando nel modo sbagliato?

        <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>
È stato utile?

Soluzione

  

posso fare mvn myplugin:myGoalWhich corre myGoal (entrambe le esecuzioni suppongo)

Nessuno di loro (ammesso che avevano id unico). Le esecuzioni sono legati ad una fase, è necessario eseguire la fase di data per innescare loro.

  

so di poter aggiungere un id all'elemento di esecuzione, ma come faccio riferimento a tale id sulla riga di comando.

Non supportato. Ciò che è possibile per i plugin invocati sul CLI è quello di definire un non globale di configurazione nella POM utilizzando lo speciale default-cli executionId, in questo modo:

<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>
  

Questo è possibile, o sto andando su questo nel modo sbagliato?

No, non è possibile. O passare i parametri sui profili riga di comando o di usare (con o senza l'esecuzione predefinito sopra).

Bibliografia

Altri suggerimenti

Esecuzione di obiettivi multipli dalla CLI è ora supportato in Maven 3.3.1 +

mvn exec:java@first-cli
mvn exec:java@second-cli

Dove prima CLI / seconde CLI sono gli ID di esecuzione.

http: //blog.soebes. de / blog / 2015/03/17 / apache-Maven-3-dot-3-1-caratteristiche /

Hey è possibile creare il vostro obiettivo in questo modo: -

org.myplugin:myplugin-maven-plugin:1.1.1:myGoal  i.e
<groupId>:<artifactId>:<version>:<yourgoal>

Si lavora nel mio caso ...

Il presupposto che hai fatto è che se chiami

  mvn myplugin:myGoal

Ma il problema è che riceverai un messaggio di errore perché l'esecuzione non ha ID univoci (entrambi in questo caso hanno lo stesso).

Puoi raggiungere ciò che ti piace fare tramite i profili che puoi attivare tramite mvn -PXYZ e mvn -PABC

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top