Maven工程打jar包的N种方式

Maven工程打jar包

  • 一、IDEA自带打包插件
  • 二、maven插件打包
    • 2.1 制作瘦包(直接打包,不打包依赖包)
    • 2.2 制作瘦包和依赖包(相互分离)
    • 2.3 制作胖包(项目依赖包和项目打为一个包)
    • 2.4 制作胖包(transform部分自定义)
  • 三、SpringBoot项目打包
  • 四、Scala项目打包
  • 五、groovy项目打包

一、IDEA自带打包插件

内容:此种方式可以自己选择制作胖包或者瘦包,但推荐此种方式制作瘦包。

输出:输出目录在out目录下

流程步骤:

  1. 第一步: 依次选择 file->projecct structure->artifacts->点击+ (选择jar)->选择 from module with dependencies

    在这里插入图片描述

  2. 第二步:弹出窗口中指定Main Class,是否选择依赖jar包,是否包含测试。(尽量不选依赖包,防止依赖包选择不全)

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  3. 第三步:点击Build–>Build Artifacts–>选择bulid

二、maven插件打包

输出:输出目录在target目录下

2.1 制作瘦包(直接打包,不打包依赖包)

内容:仅打包出项目中的代码到JAR包中。

方式:在pom.xml中添加如下plugin; 随后执行maven install

 

	org.apache.maven.plugins
	maven-compiler-plugin
	指定版本
	
		1.8
		1.8
		UTF-8
	


   
   

2.2 制作瘦包和依赖包(相互分离)

内容:将依赖JAR包输出到lib目录方式(打包方式对于JAVA项目是通用的)

将项目中的JAR包的依赖包输出到指定的目录下,修改outputDirectory配置,如下面的${project.build.directory}/lib。

方式:

  1. pom.xml的build>plugins中添加如下配置。
  2. 点击maven project(右边栏)->选择Lifecycle->点击package打包

    注意:如果想将打包好的JAR包通过命令直接运行,如java -jar xx.jar。需要制定manifest配置的classpathPrefix与上面配置的相对应。如上面把依赖JAR包输出到了lib,则这里的classpathPrefix也应指定为lib/;同时,并指定出程序的入口类,在配置mainClass节点中配好入口类的全类名。

	org.apache.maven.plugins	maven-compiler-plugin			1.8		1.8		UTF-8		org.apache.maven.plugins	maven-jar-plugin										true				lib/				com.yourpakagename.mainClassName							org.apache.maven.plugins	maven-dependency-plugin						copy			install							copy-dependencies										${project.build.directory}/lib						      

注意:默认的classpath会在jar包内。为了方便,可以在Main方法配置后加上manifestEntries配置,指定classpath。

  
	org.apache.maven.plugins  
	maven-jar-plugin  
	  
		target/classes/  
		  
			  
				  
				com.yourpakagename.mainClassName  
				  
				false  
				true  
				lib/  
			  
			  
				.  
			  
		  
	  
  

   
   

2.3 制作胖包(项目依赖包和项目打为一个包)

内容:将项目中的依赖包和项目代码都打为一个JAR包

方式:

  1. pom.xml的build>plugins中添加如下配置;
  2. 点击maven project(右边栏)->选择Plugins->选择assembly->点击assembly:assembly

    注意:1. 针对传统的JAVA项目打包;

    2. 打包指令为插件的assembly命令,尽量不用package指令。

	org.apache.maven.plugins  	maven-assembly-plugin  	2.5.5  	  		  			  				com.xxg.Main  			  		  		  			jar-with-dependencies  		  	         

2.4 制作胖包(transform部分自定义)

	org.apache.maven.plugins	maven-shade-plugin	2.4.3						package							shade																					*:*													META-INF/*.SF							META-INF/*.DSA							META-INF/*.RSA																														META-INF/spring.handlers																META-INF/spring.schemas																META-INF/spring.tooling																com.xxx.xxxInvoke													true				true						      

三、SpringBoot项目打包

内容:将当前项目里所有依赖包和当前项目的源码都打成一个JAR包,同时还会将没有依赖包的JAR包也打出来,以.original保存

方式:

  1. 在pom.xml的build>plugins中加入如下配置
  2. 点击maven project(右边栏)->选择Lifecycle->点击package或install打包
	org.springframework.boot
	spring-boot-maven-plugin


   
   

四、Scala项目打包

方式:

  1. 在pom.xml的build>plugins中加入如下配置
  2. 点击maven project(右边栏)->选择Lifecycle->点击package或install打包
	org.scala-tools
	maven-scala-plugin
	
		
			
				compile
					testCompile
				
		
	
	
		${scala.version}
		
			-target:jvm-1.5
		
	


   
   

五、groovy项目打包

方式:

  1. 在pom.xml的build>plugins中加入如下配置
  2. 点击maven project(右边栏)->选择Lifecycle->点击package或install打包
	org.codehaus.gmavenplus
	gmavenplus-plugin
	1.2
	
		
			
				addSources
				addStubSources
				compile
				execute
			
		
	


   
   

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/c9f8d5aafe.html