maven pom.xml幾個特殊的插件


1. surefire插件 

Maven Surefire 插件有一個 test 目標,該目標被綁定在了 test 階段。 
test 目標執行項目中所有能在 src/test/java 找到的並且文件名與 **/Test*.java, **/*Test.java 匹配的所有單元測試 ,
在 Maven Surefire 插件執行 JUnit 測試的時候,它同時也在 /target/surefire-reports 
目錄下生成 XML 和常規文本報告。 
如果你的測試失敗了,你可以去查看這個目錄,里面有你單元測試生成的異常堆棧信息和錯誤信息。
當Maven 遇到一個測試失敗,它默認的行為是停止當前的構建。 如果你希望繼續構建項目,即使 Surefire 插件
遇到了失敗的單元測試,你就需要設置 Surefire 的testFailureIgnore 這個配置屬性為 true。
 
[java]  view plain  copy
 
  1. <project>  
  2.     [...]  
  3.     <build>  
  4.         <plugins>  
  5.             <plugin>  
  6.                 <groupId>org.apache.maven.plugins</groupId>  
  7.                 <artifactId>maven-surefire-plugin</artifactId>  
  8.                 <configuration>  
  9.                     <testFailureIgnore>true</testFailureIgnore>  
  10.                 </configuration>  
  11.             </plugin>  
  12.         </plugins>  
  13.     </build>  
  14.     [...]  
  15. </project>  
這個表達式可以從命令行通過 -D 參數設置。mvn test -Dmaven.test.failure.ignore=true
Maven 提供了跳過單元測試的能力,只需要使用 Surefire 插件的 skip 參數。 在命令行,只要簡單的給任何目標添加
maven.test.skip 屬性就能跳過測試:mvn install -Dmaven.test.skip=true
另一種配置 Maven 跳過單元測試的方法是給你項目的 pom.xml 添加這個配置
[java]  view plain  copy
 
  1. <project>  
  2.     [...]  
  3.     <build>  
  4.         <plugins>  
  5.             <plugin>  
  6.                 <groupId>org.apache.maven.plugins</groupId>  
  7.                 <artifactId>maven-surefire-plugin</artifactId>  
  8.                 <configuration>  
  9.                     <skip>true</skip>  
  10.                 </configuration>  
  11.             </plugin>  
  12.         </plugins>  
  13.     </build>  
  14.     [...]  
  15. </project>  

2. assembly插件

Maven Assembly 插件是一個用來創建你應用程序特有分發包的插件。 你可以使用 Maven Assembly 插件

以你希望的任何形式來裝配輸出,只需定義一個自定義的裝配描述符,即可生成一個可分發的JAR文件,該文件包含

了項目的二進制文件和所有的依賴。

要配置 Maven Assembly 插件, 需要在 pom.xml 中的build 配置中添加如下的 plugin 配置。如下圖所示

 

[java]  view plain  copy
 
  1. <project>  
  2.     [...]  
  3.     <build>  
  4.         <plugins>  
  5.             <plugin>  
  6.                 <artifactId>maven-assembly-plugin</artifactId>  
  7.                 <configuration>  
  8.                     <descriptorRefs>  
  9.                         <descriptorRef>jar-with-dependencies</descriptorRef>  
  10.                     </descriptorRefs>  
  11.                 </configuration>  
  12.             </plugin>  
  13.         </plugins>  
  14.     </build>  
  15.     [...]  
  16. </project>  

添加好這些配置以后,你可以通過運行 mvn assembly:assembly來構建這個裝配。將工程依賴的jar包和工程都打成一個jar打包

 

在 target/***-1.0-jar-with-dependencies.jar 裝配好之后, 我們可以在命令行重新運行 Main 類

Java -cp **-1.0-jar-with-dependencies.jar *.*.Main

3. compiler插件

用於編譯源代碼,默認在compile階段被調用。兩個goal,compiler:compile/compiler:testCompile

windows平台默認使用GBK編碼,如果工程編碼為utf8,也需要在compiler插件中指出,否則按GBK編碼,也會出問題

 

[java]  view plain  copy
 
  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-compiler-plugin</artifactId>  
  4.     <version>3.3</version>  
  5.     <configuration>  
  6.         <!--源碼的Java版本-->  
  7.         <source>1.7</source>  
  8.         <!--運行環境的Java版本-->  
  9.         <target>1.7</target>  
  10.     <encoding>UTF8</encoding>  
  11.     </configuration>  
  12. <executions>
        <execution>
        <id>log4j-plugin-processor</id>
        <goals>
        <goal>compile</goal>
        </goals>
              <phase>process-classes</phase>
              <configuration>
                   <proc>only</proc>
                   <annotationProcessors>
                        <annotationProcessor>org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor</annotationProcessor>
                  </annotationProcessors>
              </configuration>
        </execution>
    </executions>

  13. </plugin>  

 

4、Resource插件

[java]  view plain  copy
 
  1. <filters>  
  2.             <filter>${user.home}/asssd.properties</filter>  
  3.         </filters>  
  4.         <resources>  
  5.             <resource>  
  6.                 <directory>src/main/resources</directory>  
  7.                 <filtering>true</filtering>  
  8.                 <includes>  
  9.                     <include>**/*</include>  
  10.                 </includes>  
  11.             </resource>  
  12.             <resource>  
  13.                 <directory>src/main/java</directory>  
  14.                 <includes>  
  15.                     <include>**.xml</include>  
  16.                 </includes>  
  17.             </resource>  
  18.         </resources>  
運行打包命令時,將src/main/resources中的所有文件和src/main/java目錄下的所有.xml文件打到jar包中。
其中filters過濾器的作用是將所有引用文件中的${變量名稱},替換成antx.properties文件中的變量值。要使用過濾器時,首先需要設置過濾器:
<filters>    
       <filter>${user.home}/antx.properties</filter>
</filters>
然后再啟動過濾器, true需要過濾,false不需要過濾:
<filtering>true</filtering>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM