2013-04-02 9 views
11

Come posso stampare sulla console durante l'esecuzione di un comando mvn (in una fase/obiettivo), ma non utilizzando il plug-in Maven Antrun?Come echo in Maven senza plug-in Antrun?

Perché rifiutare soluzioni Antrun:

  • L'overhead nel codice per stampare un singolo messaggio è massiccio.
  • L'uscita non è formattato come uscita Maven
  • Non è possibile allegare una severità al messaggio (ad esempio DEBUG, INFO, errore, ecc)

attualmente un Ant-echo si presenta così (vedi linea con "ciao mondo"):

[INFO] --- maven-antrun-plugin:1.7:run (default) @ ejpd-alertmanager-ear --- 
[WARNING] Parameter tasks is deprecated, use target instead 
[INFO] Executing tasks 
main: 
[echo] hello world 
[INFO] Executed tasks 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 

Tuttavia, mi aspetto che così (vedi linea con "ciao mondo").

[INFO] --- maven-antrun-plugin:1.7:run (default) @ ejpd-alertmanager-ear --- 
[WARNING] Parameter tasks is deprecated, use target instead 
[INFO] Executing tasks 
[INFO] hello world 
[INFO] Executed tasks 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 

Sono positivo, mi manca qualcosa qui, dal momento che non posso essere il primo ad aumentare questa richiesta. Grazie per qualsiasi suggerimento intelligente.

+0

Che cosa si desidera stampare esattamente? L'output conterrà già i dettagli della fase/obiettivo che si sta eseguendo. – DaveRlz

+0

Hi Dave, 1 °) valori di proprietà quando è stato eseguito un obiettivo (Voglio verificare se una variabile è impostata correttamente in fase di esecuzione, ad esempio sistema operante, proprietà concatenate durante l'esecuzione di maven-resources-plugin ecc.). 2) Quando eseguo un'operazione di copia o spostamento antropo (o ancora il plugin maven-resources-plug), desidero echo in uno stile formattato da Maven.Dire, a partire da [INFO]. per esempio. [INFO] Copia con successo il file x nel percorso y. Ho senso? – feder

risposta

1

Non ho provato io stesso, ma c'è un plugin qui che può aiutare:

http://code.google.com/p/maven-echo-plugin/

+0

Sfortunatamente questo plugin non si trova in Maven Central. – khmarbaise

+0

Un rapido controllo su google mostra che è disponibile dal repository mvn a questo link: http://mvnrepository.com/artifact/com.soebes.maven.plugins/maven-echo-plugin - ok, non è esattamente lo stesso di me inizialmente ha risposto, ma sembra che faccia lo stesso compito. – DaveRlz

+0

Probabilmente questo è tutto ciò che possiamo ottenere per ora. Grazie. – feder

5

Si dovrebbe provare il Maven Echo plugin:

<plugin> 
    <groupId>com.soebes.maven.plugins</groupId> 
    <artifactId>maven-echo-plugin</artifactId> 
    <version>0.1</version> 
    <executions> 
    <execution> 
     <phase>initialize</phase> 
     <goals> 
     <goal>echo</goal> 
     </goals> 
    </execution> 
    </executions> 
    <configuration> 
    <echos> 
     <echo>This is the Text which will be printed out.</echo> 
    </echos> 
    </configuration> 
</plugin> 

o ancora uno sguardo più in profondità il integration test of the plugin.

disponibile tramite Maven Central. BTW: se hai ulteriori richieste/miglioramenti, inserisci il file in an issue.

3

Per questo è possibile utilizzare Groovy Maven Plugin.

<plugin>               
    <groupId>org.codehaus.gmaven</groupId>      
    <artifactId>groovy-maven-plugin</artifactId>     
    <version>2.0</version>          
    <executions>             
     <execution>            
      <phase>validate</phase>        
      <goals>            
       <goal>execute</goal>        
      </goals>            
      <configuration>          
       <source>           
        log.info('Test message: {}', 'Hello, World!') 
       </source>           
      </configuration>          
     </execution>            
    </executions>             
</plugin>               

La configurazione di cui sopra produrrà il seguente output:

[INFO] Test message: Hello, World! 
1

È possibile utilizzare Björn Ekryd s' Echo Maven Plugin, che viene pubblicato in Maven Central.

Ha una quantità normale di XML richiesta per un plug-in Maven, l'output è formattato come le altre righe di registro di Maven ed è possibile assegnare un livello di gravità al messaggio (l'impostazione predefinita è INFO).

<plugin> 
    <groupId>com.github.ekryd.echo-maven-plugin</groupId> 
    <artifactId>echo-maven-plugin</artifactId> 
    <version>1.2.0</version> 
    <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>echo</goal> 
      </goals> 
      <configuration> 
       <message>war has changed</message> 
       <level>INFO</level> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

[INFO] --- maven-war-plugin:2.4:war (default-war) @ mymodule --- 
[INFO] Packaging webapp 
[INFO] Processing war project 
[INFO] 
[INFO] --- echo-maven-plugin:1.2.0:echo (default) @ mymodule --- 
[INFO] war has changed 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 

Inoltre, questo plugin ha 95% code coverage, che è piuttosto fresco.

Problemi correlati