栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

通过maven打包可执行jar

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过maven打包可执行jar

通过maven打包可执行jar
  • 1. 可执行jar理解
  • 2. 几种常见方案
    • 2.1 使用maven-jar-plugin和maven-dependency-plugin
    • 2.2 使用maven-assembly-plugin
    • 2.3 使用maven-shade-plugin

1. 可执行jar理解

直接使用mvn package对项目进行打包时,如果使用java -jar xxx.jar运行jar文件,会出现"no main manifest attribute, in xxx.jar"(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。


要想jar包能直接通过java -jar xxx.jar运行,必要条件是:

1、在jar包中的meta-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的入口在哪里;

2、要能加载到依赖包。


2. 几种常见方案

注: 本章所有源代码均在: https://gitee.com/shuanglin666/mvn-build-exe-jar

2.1 使用maven-jar-plugin和maven-dependency-plugin
  • pom文件plugin配置

其中maven-jar-plugin用来打成jar包, 指定mainClass位置等

maven-dependency-plugin用来将依赖也打动包里面, 并且能被mainsClass识别.

如果需要详细了解打包结构, 可以将jar包unzip解压查看.


        
            
                org.apache.maven.plugins
                maven-jar-plugin
                2.6
                
                    
                        
                            true
                            lib/
                            com.wsl.test.mvn.build.jar.dep.BootStrap1
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-dependency-plugin
                2.10
                
                    
                        copy-dependencies
                        package
                        
                            copy-dependencies
                        
                        
                            ${project.build.directory}/lib
                        
                    
                
            
        
    
  • 执行mvn clean package打包

  • 运行jar包

    java -jar java -jar mvn-jar-and-dep-1.0-SNAPSHOT.jar


2.2 使用maven-assembly-plugin
  • pom文件plugin配置
 
        
            
                org.apache.maven.plugins
                maven-assembly-plugin
                3.1.1
                
                    
                        
                            com.wsl.test.mvn.build.assembly.BootStrap2
                        
                    
                    
                        jar-with-dependencies
                    
                
                
                    
                        make-assembly
                        package
                        
                            single
                        
                    
                
            
        
    
  • 执行mvn package打包

  • 运行jar包

    java -jar mvn-assembly-1.0-SNAPSHOT-jar-with-dependencies.jar


2.3 使用maven-shade-plugin
  • pom文件plugin配置

        
            
                org.apache.maven.plugins
                maven-shade-plugin
                2.4.1
                
                    
                        package
                        
                            shade
                        
                        
                            
                                
                                    com.wsl.test.mvn.build.shade.BootStrap3
                                
                            
                        
                    
                
            
        
    
  • 运行mvn clean package打包

  • 运行jar

    java -jar mvn-shade-1.0-SNAPSHOT.jar

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/424018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号