2010-08-05 30 views
42

¿Cómo puedo mostrar un mensaje en Maven? En hormiga, tenemos "eco" para mostrar un mensaje, pero en Maven, ¿cómo puedo hacer eso?¿Cómo puedo mostrar un mensaje en Maven

+0

¿Por qué necesita hacer esto? ¿Cuál es tu caso de uso? –

+0

https://code.google.com/p/echo-maven-plugin/ – timomeinen

+0

@PascalThivent decir, si quiero rastrear el valor de alguna propiedad, ¿cómo puedo hacer eso sin imprimirlo? –

Respuesta

41

Usted puede utilizar el plugin antRun:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
     <execution> 
      <phase>generate-resources</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <tasks> 
        <echo>Hello world!</echo> 
       </tasks> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Un problema es que aunque usted tiene que elegir qué fase del the build lifecycle de obligar a que esto (mi ejemplo tiene el plugin con destino a generate-resources). A diferencia de Ant, usted no está controlando el ciclo de vida usted mismo, sino simplemente vinculando complementos a ciertos puntos en un ciclo de vida predefinido. Dependiendo de lo que realmente está tratando de hacer, esto puede o no tener sentido para su caso de uso.

+0

vea el enlace a continuación para la sintaxis correcta: http://maven.apache.org/plugins/maven-antrun-plugin/examples/tasksAttributes.html –

5
<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
     <execution> 
      <phase>generate-resources</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <tasks> 
        <echo>[your message]:${Urkey}</echo> 
       </tasks> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

esto no funciona para mí – Sridhar

9

Puede usar Groovy Maven Plugin para esto.

<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 configuración anterior producirá el siguiente resultado:

[INFO] Test message: Hello, World! 
+0

El plugin maven-antrun no se pudo imprimir mensajes en maven 3.3.3 en windows. El complemento Groovy funcionaba como un encanto. –

5

Puede utilizar Björn Ekryd 's Echo Maven Plugin, que se publica en Maven Central:

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

Además, este complemento tiene 95% code coverage, lo cual es genial.

+0

¿cómo lo ejecutaste? – Sridhar

+1

Ejecuto el paquete 'mvn', pero puede vincularlo a cualquier [fase] (https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference) que desee. –

Cuestiones relacionadas