maven实战笔记(三)

Maven常用插件示例

0. resources管理



	
		src/main/java
		
			**/*.java
			**/*.xml
		
	
	
		src/main/resources
		
			**/*.txt
			**/*.properties
			**/*.xml
		
	


	
		src/test/java
		
			**/*.java
		
	
	
		src/test/resources
		
			**/*.txt
			**/*.xml
			**/*.properties
		
	

一.maven-source-plugin

生成源码包, http://maven.apache.org/plugins/maven-source-plugin/

	org.apache.maven.plugins
	maven-source-plugin
	2.2.1
	
		
			attach-source
			package
			
				jar-no-fork
			
		
	
这样在mvn package后便会在target目录下生成*-sources.jar源码包。



二. maven-javadoc-plugin

生成javadoc文档, http://maven.apache.org/plugins/maven-javadoc-plugin/

	org.apache.maven.plugins
	maven-javadoc-plugin
	2.7
	
		
			attach-javadocs
			package
			
				jar
			
		
	
这样在mvn package后便会在target目录下生成*-javadoc.jar文档包。



三. maven-compiler-plugin

指定JDK版本和编码
maven 2.1默认用jdk 1.3来编译,maven3 貌似是用jdk 1.5,如果项目用的jdk 1.6也会有问题,compiler插件可以指定JDK版本为1.6。
windows默认使用GBK编码,java项目经常编码为utf8,也需要在compiler插件中指出,否则中文乱码可能会出现编译错误。

 
	org.apache.maven.plugins 
	maven-compiler-plugin
	3.1 
	 
		1.6 
		1.6 
		UTF8 
	 
 

四.maven-surefire-plugin


maven是使用surefire插件执行测试的,它按照指定格式的类名来查找匹配的测试类。

默认包含的测试类:

  • **/*Test.java
  • **/Test*.java
  • **/*TestCase.java

默认排除的测试类:

  • **/Abstract*Test.java
  • **/Abstract*TestCase.java

    org.apache.maven.plugins
    maven-surefire-plugin
    2.16
    
        -Xms128m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m
        
            **/*Test.java
        
        
            **/TestConstants.java
        
        always
    
forkMode:Maven运行测试用例时,是通过调用maven的surefire插件并fork一个子进程来执行用例的。forkmode属性中指明是要为每个测试创建一个进程,还是所有测试在同一个进程中完成。forkMode可设置值有 “never”, “once”, “always” 和 “pertest”。pretest: 每一个测试创建一个新进程,为每个测试创建新的JVM是单独测试的最彻底方式,但也是最慢的,不适合hudson上持续回归。once:在一个进程中进行所有测试。once为默认设置,在Hudson上持续回归时建议使用默认设置。always:在一个进程中并行的运行脚本,Junit4.7以上版本才可以使用,

使用该插件需要指定如下内容:

src/test/java
target/test-classes

	
		src/test/java
		
			**/*.xml
			**/*.properties
			**/*.java
		
	
	
		src/test/resources
		
			**/*.xml
			**/*.properties
		
	


跳过单元测试




	org.apache.maven.plugins
	maven-surefire-plugin
	
		true
	
skip=true,表示跳过单元测试,相当于-Dmaven.test.skip=true。

但是在执行mvn test -Dtest时,也会被跳过。解决方法是用excludes跳过所有测试,而不是用skipTests.


	org.apache.maven.plugins
	maven-surefire-plugin
	2.16
	
		
		
			**/*.java
		
	
即跳过所有test。这样再执行mvn test -Dtest就没有问题了。


五.maven-shade-plugin

构建包含依赖的jar包,http://maven.apache.org/plugins/maven-shade-plugin/。



	org.apache.maven.plugins
	maven-shade-plugin
	1.4
	
		
			package
			
				shade
			
			
				
					
						com.adu.mvn_test.HelloWorld
					
				
			
		
	
mvn clean package后,target下可以看到 mvn-test-0.0.1-SNAPSHOT.jar original-mvn-test-0.0.1-SNAPSHOT.jar 两个jar包,前者是带有依赖包(会解压)和Main-Class信息的可运行jar包,后者是原始的jar包(不包含依赖及Main-Class信息)。
打开mvn-test-0.0.1-SNAPSHOT.jar/META-INF/MANIFEST.MF可看到Main-Class: com.adu.mvn_test.HelloWorld信息。
可运行jar包的执行:$java -jar mvn-test-0.0.1-SNAPSHOT.jar 或者直接双击。


你可能感兴趣的:(maven,maven学习,maven项目构建,maven知识点)