• Maven工程打jar包的N种方式


    Maven工程打jar包

    一、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
    	
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    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/  
    			  
    			  
    				.  
    			  
    		  
    	  
      
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    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
    			
    		
    	
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    三、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
  • 相关阅读:
    C进阶--字符函数和字符串函数介绍
    UWB系统的定位精度影响因素(二)
    2022年宜昌市企业研发投入补贴申报条件、流程及时间汇总
    每日OJ题_多源BFS①_力扣542. 01 矩阵(多源BFS解决最短路原理)
    Sharding-JDBC概述
    【鸿蒙】 模拟器运⾏
    macOS 13.6 及后续系统安装 Asahi Linux 将破坏引导
    客快物流大数据项目(七十):Impala入门介绍
    还不会JVM监控告警?一篇文章教会你!
    项目打包报错Command execution failed.: Process exited with an error: 1
  • 原文地址:https://blog.csdn.net/m0_67391377/article/details/126435420