2010-08-05 3 views
42

Как я могу отобразить сообщение в Maven? В ant, у нас есть «эхо» для отображения сообщения, но в maven, как я могу это сделать?Как я могу отобразить сообщение в Maven

+0

Зачем вам это нужно? Каков ваш прецедент? –

+0

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

+0

@PascalThivent сказать, если я хочу отслеживать значение некоторого свойства - как я могу это сделать без его печати? –

ответ

41

Вы можете использовать плагин 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> 

Одна проблема, хотя в том, что вы должны выбрать то, что фаза the build lifecycle, чтобы связать это (мой пример имеет плагин, связанный с generate-resources). В отличие от Ant, вы сами не управляете жизненным циклом, а просто привязываете плагины к определенным точкам в заранее определенном жизненном цикле. В зависимости от того, что вы на самом деле пытаетесь сделать, это может быть или не иметь смысла для вашего случая использования.

+0

см. Ссылку ниже для правильного sytax: 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

это не работает для меня – Sridhar

9

Для этого вы можете использовать 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>               

конфигурация выше произведет следующий вывод:

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

Плагин maven-antrun не был распечатан сообщений в maven 3.3.3 в окнах. Плагин Groovy работал как шарм. –

5

Вы можете использовать Björn Ekryd «s Echo Maven Plugin, которая опубликована в 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] ------------------------------------------------------------------------ 

Кроме того, этот плагин имеет 95% code coverage, что довольно круто.

+0

как вы его выполнили? – Sridhar

+1

Я запускал 'mvn package', но вы можете привязать его к любой [фазе] (https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference), которая вам нравится. –

Смежные вопросы