2010-08-05 20 views
42

Làm cách nào để hiển thị một tin nhắn trong Maven? Trong kiến, chúng ta có "tiếng vang" để hiển thị một thông điệp, nhưng trong maven, làm thế nào tôi có thể làm điều đó?Tôi làm cách nào để hiển thị một tin nhắn trong Maven

+0

Tại sao bạn cần thực hiện việc này? Trường hợp sử dụng của bạn là gì? –

+0

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

+0

@PascalThivent nói, nếu tôi muốn theo dõi giá trị của một số thuộc tính - làm cách nào tôi có thể làm điều đó mà không cần in? –

Trả lời

41

Bạn có thể sử dụng 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> 

Một vấn đề dù là bạn phải chọn những gì giai đoạn của the build lifecycle để ràng buộc này để (ví dụ của tôi có các plugin ràng buộc để generate-resources). Không giống như Ant, bạn không tự kiểm soát vòng đời, mà chỉ cần gắn các trình cắm thêm vào một số điểm nhất định trong vòng đời được xác định trước. Tùy thuộc vào những gì bạn đang thực sự cố gắng làm, điều này có thể hoặc có thể không có ý nghĩa đối với trường hợp sử dụng của bạn.

+0

xem liên kết bên dưới để biết đúng 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

tính năng này không hoạt động đối với tôi – Sridhar

9

Bạn có thể sử dụng Groovy Maven Plugin cho việc này.

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

Cấu hình trên sẽ cho kết quả sau:

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

Trình cắm maven-antrun đã không in được tin nhắn trong maven 3.3.3 trong cửa sổ. Plugin Groovy hoạt động như một sự quyến rũ. –

5

Bạn có thể sử dụng Björn Ekryd 's Echo Maven Plugin, được công bố trên 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] ------------------------------------------------------------------------ 

Ngoài ra, plugin này có 95% code coverage, điều này khá thú vị.

+0

bạn đã thực hiện nó như thế nào? – Sridhar

+1

Tôi đã chạy gói 'mvn', nhưng bạn có thể liên kết nó với bất kỳ [pha] nào (https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference) mà bạn thích. –

Các vấn đề liên quan