2010-02-12 9 views
8

Aggiornamento a (si spera) chiarire: Se un obiettivo è definito per essere eseguito durante una determinata fase, è possibile eseguire l'obiettivo individuale senza eseguire tutte le fasi. In altre parole, sarebbe possibile eseguire l'obiettivo antrun:run (che è definito come parte della fase di installazione di seguito) senza ottenere dipendenze, generare risorse, compilazione, test, pacchetto, ecc.?È possibile individuare ed eseguire un obiettivo specifico associato a una fase di preparazione?

Sto utilizzando il plug-in di antrun per creare un file zip durante la fase package e per eliminare e copiare alcuni file durante la fase install. Capisco come eseguire singoli obiettivi di plugin Maven, ad esempio: mvn antrun:run. Tuttavia, esiste un modo per eseguire l'obiettivo di un'esecuzione specifica? Qualcosa come mvn antrun:run:execution-id o mvn phase:antrun:run?

Fondamentalmente, sarei gentile se potessi dire a Maven di non fare nient'altro che eseguire le attività di formica definite di seguito all'interno della fase di distribuzione, per esempio. È un po 'noioso dover aspettare che Maven passi attraverso tutte le fasi solo per verificare se le attività della formica nella fase di implementazione funzionano correttamente.

<executions> 
    <!-- create zip file --> 
    <execution> 
    <id>create-zip</id> 
    <phase>package</phase> 
    <configuration> 
     <tasks> 
    ...create zip... 
     </tasks> 
    </configuration> 
    <goals> 
     <goal>run</goal> 
    </goals> 
     </execution> 
    <!-- do some other stuff --> 
    <execution> 
    <id>copy-files</id> 
    <phase>install</phase> 
    <configuration> 
     <tasks> 
    ...delete some files, copy some files ... 
     </tasks> 
    </configuration> 
    <goals> 
     <goal>run</goal> 
    </goals> 
     </execution> 
    </executions> 
+0

Sì, è possibile – ant

risposta

6

In altre parole sarebbe essere possibile eseguire l'antrun: run goal (che è definito come parte della fase di installazione di seguito) senza ottenere dipendenze, generare risorse, compilazione, testing, pacchetto, ecc.?

No, non lo è. Mentre è possibile configurare un plug-in (con una sezione <plugin>) sotto l'elemento <plugin> e chiamare sulla riga di comando, non è possibile richiamare un ID di esecuzione specifico (e di conseguenza lo specifico <configuration> a <execution>).

L'unica soluzione nel tuo caso sarebbe quello di dichiarare il plugin antrun in un profilo, diciamo my-profile, per duplicare la seguente parte della configurazione per configurare il plugin in questo profilo:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.3</version> 
    <configuration> 
    <tasks> 
     ... delete some files, copy some files ... 
    </tasks> 
    </configuration> 
</plugin> 

ea chiamare con il profilo attivo giusto:

mvn antrun:run -Pmy-profile 
0

Per esempio:

Quando si esegue JBoss con Maven, non è possibile visualizzare l'output della console di JBoss, ma ho bisogno di visualizzare, in modo da quello che ho fatto è che ho scritto un file Java che legge in server.log (l'output della console del server) mentre cambia per visualizzare le modifiche, quindi sembra che la console jboss sia effettivamente visualizzata (un po 'hack-ish ma funziona). Quindi vengo al punto di rispondere alla tua domanda, durante il test di pre-integrazione ho eseguito un obiettivo java che avvia il mio programma java. Ecco come, usando eseguire plug-in, naturalmente:

<plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.1</version> 
       <executions> 
        <execution> 
         <id>console-start</id> 
         <phase>pre-integration-test</phase> 
         <goals> 
          <goal>java</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <mainClass>org.eclipse.console.Main</mainClass> 
       </configuration> 
      </plugin> 

basta eseguire l'installazione ed esegue durante la pre-integrazione-test, tuttavia, se si desidera solo eseguire qualcosa di simile a Java, usare il plugin eseguire. Scusate se la risposta non adeguata, non ho avuto la pazienza di leggere la tua domanda in dettaglio, le mie ore di lavoro sono finiti .. evviva

Problemi correlati