maven打包插件:maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin详解

最近开发的产品,我们是有四五个maven模块,开发阶段一直是在eclipse中运行的,然后快发版的时候,需要把这些项目打成jar包,通过命令去启动,那首先就得把这些模块项目打包,或者拷贝一些资源文件等等。
1.maven打包,首先在pom文件中加上build属性,和dependencies是同级的:


	
	Test
	
		
	

2.maven-compiler-plugin,编译插件,可能会用到的一些配置如下:

  
       org.apache.maven.plugins  
       maven-compiler-plugin  
       3.1  
         
            1.8  
            1.8  
          

3.maven-jar-plugin,打jar包的插件,把整个maven工程打成jar包,可能会用到的一些配置如下:


	org.apache.maven.plugins
	maven-jar-plugin
	2.4
	
		
			
			true
			
			
				
				false
					
				true
				
				lib/
                
                com.test.Test
			
			
				
				../config/
				
				
			
		
		
		${project.build.directory}/lib
		
			
			
			**/*.class
		
	

4.maven-dependency-plugin,用来拷贝项目所有依赖的插件,可能会用到的一些配置如下:


	org.apache.maven.plugins
	maven-dependency-plugin
	
		
			copy-dependencies
			package
			
				copy-dependencies
			
			
				
				${project.build.directory}/lib
				
				false
				
				false
			
		
	

5.maven-resources-plugin,用来拷贝项目中的一些资源文件,可能会用到的一些配置如下:


	org.apache.maven.plugins
	maven-resources-plugin
	2.6
	
		
		
			copy-resources
			package
			
				copy-resources
			
			
				UTF-8
				
				{project.build.directory}/config
				
					
					
						
						src/main/resources
						
						true
						
						
							**/*.*
						
						
							**/*.json
						
					
				
			
		
	

关于资源文件拷贝,注意一个小问题,平时用eclipse开发的话,默认的classPath其实就是target/classes,默认情况下,eclipse也会把一些在src/main/resources下的资源文件拷贝到这个目录下,但是如果你配了上述资源拷贝插件,只会按你配置的来,我配置上述插件是为了在非eclipse环境下运行的,但是这样影响到了eclipse的运行,所以呢,需要额外再配置一个execution,拷贝到classes目录下即可

注意:上面说的这个,在IDEA中不会有这个问题,因为IDEA每次启动都会自己build一下,会完全一部分事情,保证项目能够运行。

以上就是这4个插件,后续如果还有其余插件或者这些插件中一些新内容,会及时添加。关于一些文件的输出目录,一定要根据自己的需求来,先明白自己想要什么,再去配置,或者两者互相迭代吧。

  1. maven-war-plugin,war包打包插件,一般也不用指定,默认都会用的。只不过在针对一些快照版本的依赖包,打出来的文件,WEB-INFO/lib下面的jar包,都会带一些时间戳,经过下面的配置,打出来的就不带时间戳了。

	maven-war-plugin
	2.6
	
		@{artifactId}@-@{baseVersion}@.@{extension}@
	

你可能感兴趣的:(maven)