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>