2013-04-02 45 views
11

如何在執行mvn命令(階段/目標)時打印到控制檯,但不使用Maven Antrun插件?如何在沒有Antrun插件的Maven中進行回顯?

爲什麼我拒絕Antrun解決方案:

  • 代碼的開銷打印一條消息是馬西沃。
  • 輸出被無格式化等行家輸出
  • 我不能嚴重性附加到消息(例如DEBUG,INFO,ERROR,等)

目前一個Ant回波看起來像這樣(參見線與「hello world」):

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

但是,我希望它看起來像這樣(請參閱「hello world」一行)。

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

我很積極,我在這裏錯過了一些東西,因爲我不能第一個提出這個需求。感謝您提供任何智能提示。

+0

你想要打印什麼?輸出將包含正在執行的階段/目標的詳細信息。 – DaveRlz

+0

Hi Dave,1st)執行目標時的屬性值(我想檢查運行時是否設置了正確的變量,例如operting system,運行maven-resources-plugin時的連接屬性等)。 2)當執行antrun複製或移動任務(或者再次執行maven-resources-plugin)時,我想以maven-for-style形式回顯。說,從[信息]開始。例如[INFO]成功將文件x複製到路徑y。我有道理嗎? – feder

回答

1

我還沒有嘗試過這個自己,但這裏有一個插件,它可以幫助:

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

+0

不幸的是,這個插件不在Maven中心。 – khmarbaise

+0

谷歌快速檢查顯示它可以從這個鏈接的mvn倉庫中獲得:http://mvnrepository.com/artifact/com.soebes.maven.plugins/maven-echo-plugin - 好的,它不完全一樣,我最初回答,但它看起來做同樣的任務。 – DaveRlz

+0

也許這就是我們現在所能得到的。謝謝。 – feder

5

你應該嘗試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> 

或者還需要更深入地瞭解integration test of the plugin.

這是通過Maven中心可用。順便說一句:如果你有進一步的請求/改進只是文件in an issue

3

您可以使用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! 
1

可以使用Björn EkrydEcho Maven Plugin,其發表在Maven Central

它具有Maven插件所需的正常XML數量,輸出格式與其他Maven日誌行相似,並且可以爲消息指定嚴重級別(默認爲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] ------------------------------------------------------------------------ 

此外,該插件有95% code coverage,這是很酷。

相關問題