【转】常⽤插件和mvntest命令
⾃定义构建Maven项⽬,需要包括额外的插件或者配置已存在的插件参数。
1. maven-compiler-plugin 指定JDK版本和编码⽅式
compiler插件能解决2个问题:
第⼀: maven 2.1默认使⽤jdk 1.3来编译,这个版本不⽀持注解,compiler插件可以指定JDK版本为1.6,解决这个问题。
第⼆:windows平台默认使⽤GBK编码,如果⼯程编码为utf8,也需要在compiler插件中指出,否则按GBK编码,也会出问题      <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF8</encoding>
</configuration>
</plugin>
</plugins>
2. maven-war-plugin 打war包在web⼦项⽬中指定
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-beta-1</version>
<configuration>
<attachClasses>true</attachClasses>
maven打包本地jar包</configuration>
</plugin>
<attachClasses>true</attachClasses> 可以把JAR⽂件和标准的WAR⽂件同时安装到Maven仓库中
3. 单元测试插件 maven-surefire-plugin
<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>
4 .Resource插件
<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>
5、Maven常⽤命令
1、运⾏应⽤程序中的单元测试:mvn test或mvn test -Dtest=***Test,其中“***Test”为被测试⽤例的类名(不需要输⼊.java)
打开控制台,进⼊测试⼯程所在⽬录:D:\workspace-sell\sell-qatest路径;输⼊mvn test命令后,开始
执⾏sell-qatest中的所有测试脚本,并将信息输出到控制台。
如果要单独运⾏⼀个测试类⾥的⽤例,如 publishAuctionTest.java,则可以运⾏ mvn test -Dtest=publishAuctionTest
2、清除⽬标⽬录中的⽣成结果:mvn clean(清除taget⽂件夹中内容)
3、在本地repo中安装jar:mvn install。运⾏命令后⼯程根⽬录下⽣成target⽂件夹,⽂件夹内存放jar包,class⽂件夹等内容。本地仓库repo中⽣成⼯程jar包⽬录。
4、将⼯程打包:mvn package。运⾏命令后⼯程根⽬录下⽣成target⽂件夹,⽂件夹内存放jar包,class⽂件夹等内容。
5、⽣成Eclipse项⽬⽂件:mvn eclipse:eclipse。运⾏命令后⽣成eclipse⼯程,项⽬的根⽬录下产⽣.project、.classpath⽂件和target⽂件夹。将该⼯程导⼊到eclipse中:打开eclipse,通过file->import,导⼊到eclipse中。
6、清除Eclipse⼯程:mvn eclipse:clean。.classpath和.project⽂件会被删除。
7、在运⾏install 或package时,测试代码不被执⾏:
第⼀种⽅法:在cmd运⾏mvn install 或mvn package 命令后加上-st.skip=true 。
例如:mvn install -st.skip=true
第⼆种⽅法:在l⽂件的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>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。