compiler插件能解決2個問題:java
第一: maven 2.1默認使用jdk 1.3來編譯,這個版本不支持註解,compiler插件能夠指定JDK版本爲1.6,解決這個問題。web
第二:windows平臺默認使用GBK編碼,若是工程編碼爲utf8,也須要在compiler插件中指出,不然按GBK編碼,也會出問題apache
<plugins>windows
<plugin> eclipse
<groupId>org.apache.maven.plugins</groupId> maven
<artifactId>maven-compiler-plugin</artifactId> 單元測試
<configuration> 測試
<source>1.6</source> 編碼
<target>1.6</target> spa
<encoding>UTF8</encoding>
</configuration>
</plugin>
</plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-beta-1</version>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
<attachClasses>true</attachClasses> 能夠把JAR文件和標準的WAR文件同時安裝到Maven倉庫中
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m</argLine>
<excludes>
<exclude>**/TestConstants.java</exclude>
</excludes>
<forkMode>always</forkMode>
</configuration>
</plugin>
<argLine>-Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m</argLine>調整JVM(-Xmx1024m)和PermSize(-XX:PermSize=256m -XX:MaxPermSize=256m)內存
<excludes>
<exclude>**/TestConstants.java</exclude>
</excludes>
運行測試腳本時不執行TestConstants.java文件
<forkMode>always</forkMode>
Maven運行測試用例時,是經過調用maven的surefire插件並fork一個子進程來執行用例的。forkmode屬性中指明是要爲每一個測試建立一個進程,仍是全部測試在同一個進程中完成。
forkMode 可設置值有 「never」, 「once」, 「always」 和 「pertest」。
pretest: 每個測試建立一個新進程,爲每一個測試建立新的JVM是單獨測試的最完全方式,但也是最慢的,不適合hudson上持續迴歸
once:在一個進程中進行全部測試。once爲默認設置,在Hudson上持續迴歸時建議使用默認設置。
always:在一個進程中並行的運行腳本,Junit4.7以上版本纔可使用,surefire的版本要在2.6以上提供這個功能,其中 threadCount:執行時,指定可分配的線程數量。只和參數parallel配合使用有效。默認:5。
<forkMode>always</forkMode>
<parallel>methods</parallel>
<threadCount>4</threadCount>
<filters>
<filter>${user.home}/asssd.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**.xml</include>
</includes>
</resource>
</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>
一、運行應用程序中的單元測試:mvn test或mvn test -Dtest=***Test, 其中「***Test」爲被測試用例的類名(不須要輸入.java)
打開控制檯,進入測試工程所在目錄:D:\workspace-sell\sell-qatest路徑;輸入mvn test命令後,開始執行sell-qatest中的全部測試腳本,並將信息輸出到控制檯。
若是要單獨運行一個測試類裏的用例,如 publishAuctionTest.java,則能夠運行 mvn test -Dtest=publishAuctionTest
二、清除目標目錄中的生成結果:mvn clean(清除taget文件夾中內容)
三、在本地repo中安裝jar:mvn install。運行命令後工程根目錄下生成target文件夾,文件夾內存放jar包,class文件夾等內容。本地倉庫repo中生成工程jar包目錄。
四、將工程打包:mvn package。運行命令後工程根目錄下生成target文件夾,文件夾內存放jar包,class文件夾等內容。
五、生成Eclipse項目文件:mvn eclipse:eclipse。運行命令後生成eclipse工程,項目的根目錄下產生.project、.classpath文件和target文件夾。將該工程導入到eclipse中:打開eclipse,經過file->import,導入到eclipse中。
六、清除Eclipse工程:mvn eclipse:clean。.classpath和.project文件會被刪除。
七、在運行install 或package時,測試代碼不被執行:
第一種方法:在cmd運行mvn install 或mvn package 命令後加上-Dmaven.test.skip=true 。
例如:mvn install -Dmaven.test.skip=true
第二種方法:在pom.xml文件的maven-surefire-plugin插件中添加參數:<skip>true</skip>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<inherited>true</inherited>
<configuration>
<skip>true</skip>
</configuration>
</plugin>