2013-08-21 16 views
10

Sto provando ad impostare il mio POM in modo tale che quando faccio mvn exec:exec o mvn exec:java si compili prima la fonte e se l'operazione è riuscita, eseguirla.Compilare Mvn prima dell'esecuzione

Ho il seguente e hanno provato a spostare la parte <execution> circa ma non riesce a farlo funzionare:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>exec</phase> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <configuration> 
       <mainClass>my.main.class</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

quando faccio sia mvn exec:exec ... o mvn exec:java esso non prima della compilazione. Ho provato a inserire la parte <execution> nella sezione plug-in exec ma non ha funzionato?

+0

Perché non eseguire "compiler: compile" prima dell'esecuzione: exec/exec: java? –

+2

@Elad Continuo a dimenticare di compilare e poi confondermi perché nulla è cambiato. – Lerp

+0

@Lerp Di fronte allo stesso problema, hai trovato una soluzione? – Yaroslav

risposta

1

è possibile associare il plugin exec ad una fase seguente compile a build lifecycle (verify nell'esempio qui sotto):

<profile> 
    <id>proxy</id> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.2.1</version> 
       <executions> 
        <execution> 
         <phase>verify</phase> 
         <goals> 
          <goal>exec</goal> 
         </goals> 
         <configuration> 
          <mainClass>my.main.class</mainClass> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</profile> 

e che correre mvn verify.

Vedo che la risposta è molto tardi e potresti aver trovato una soluzione. Sto solo lasciando come riferimento per gli altri che potrebbero averne bisogno.

+3

Grazie per questo ma, se sono comprendendo correttamente, l'OP sta cercando di avere una compilazione durante l'esecuzione [diretta] di 'mvn exec: [exec | java]' e ** non ** come parte di un normale ciclo di build di Maven. Per chiarire, loro, come me, vogliono che il codice venga prima creato quando eseguiamo 'mvn exec', ma facciamo ** non ** che vuoi che 'exec' venga eseguito durante i normali cicli/fasi di generazione di Maven. –

0

È un argomento vecchio, ma qualcun altro potrebbe essere interessato a una soluzione alternativa per questo.

Non è esattamente quello che stavamo cercando, ma si può compilare ed eseguire con un unico comando:

mvn compile exec:exec 

In questo modo Maven sarà sempre compilare il progetto prima di eseguirlo.

Problemi correlati