⾃定义构建Maven项⽬,需要包括额外的插件或者配置已存在的插件参数。
1. maven-compiler-plugin 指定JDK版本和编码⽅式
compiler插件能解决2个问题:
第⼀: maven 2.1默认使⽤jdk 1.3来编译,这个版本不⽀持注解,compiler插件可以指定JDK版本为1.6,解决这个问题。第⼆:windows平台默认使⽤GBK编码,如果⼯程编码为utf8,也需要在compiler插件中指出,否则按GBK编码,也会出问题
2. maven-war-plugin 打war包在web⼦项⽬中指定
3. 单元测试插件 maven-surefire-plugin
运⾏测试脚本时不执⾏TestConstants.java⽂件
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。
4 .Resource插件
运⾏打包命令时,将src/main/resources中的所有⽂件和src/main/java⽬录下的所有.xml⽂件打到jar包中。
其中filters过滤器的作⽤是将所有引⽤⽂件中的${变量名称},替换成antx.properties⽂件中的变量值。要使⽤过滤器时,⾸先需要设置过滤
器:
然后再启动过滤器, true需要过滤,false不需要过滤:
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=publishAuctionTest2、清除⽬标⽬录中的⽣成结果: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 命令后加上-Dmaven.test.skip=true 。例如:mvn install -Dmaven.test.skip=true
第⼆种⽅法:在pom.xml⽂件的maven-surefire-plugin插件中添加参数:
因篇幅问题不能全部显示,请点此查看更多更全内容