maven 项目打jar包 并包含所有依赖「建议收藏」

maven 项目打jar包 并包含所有依赖「建议收藏」背景:基于最近项目部署,需要打jar包,然后涉及接口调用,反复测试,出现了各种问题,最后找到合理方案,特做以下总结:一、延伸知识:Springboot打jar包命令1.把之前打过的包通通干掉mvnpackageclean-Dmaven.test.skip=true2.重新打包mvnpackage-Dmaven.test.skip=true3.Springboot的打包插件<build><plugins>&

大家好,又见面了,我是你们的朋友全栈君。

背景:

基于最近项目部署,需要打jar包,然后涉及接口调用,反复测试,出现了各种问题,最后找到合理方案,特做以下总结:

一、延伸知识:Springboot打jar包命令

1.把之前打过的包通通干掉

mvn package clean -Dmaven.test.skip=true

2.重新打包

mvn package -Dmaven.test.skip=true

3. Springboot的打包插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

      起初项目框架用的SpringBoot,大家都知道,它里面是有自带打包依赖,那么问题就是,用Springboot自带的依赖打成jar包,是可以放在java环境下直接运行的,但是如果用于接口调用就行不通了。SpringBoot会自带打包插件打的包不能用。将SpringBoot会自带打包插件打的包解压后会看到它的目录结构,它把包都打到BOOT-INF这个目录下了,引用的时候我们引用不到,会报“Cannot resolve symbol”的错。

注:

JAR包中的/META-INF/MANIFEST.MF元数据文件必须包含Main-Class(主类)信息。

项目所有的依赖都必须在Classpath中,其可以通过 MANIFEST.MF 指定或者隐式设置

     二、想要将打的jar包用于接口调用并且还包含项目所有依赖,不会给调用方造成引入依赖或者导入外部jar包的困扰,特有以下方法:

1.在pom.xml中引入插件

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
            <descriptorRefs>
              <!--给jar包起的别名-->
              <descriptorRef>jar-with-dependencies</descriptorRef>
             </descriptorRefs>
             <archive>
                 <manifest>
                   <addClasspath>true</addClasspath>
                   <classpathPrefix>lib/</classpathPrefix>
                     <!--添加项目中主类-->     
                    <mainClass>com.sdt.intf.client.tools.DealConnectFile</mainClass>
                 </manifest>
             </archive>
       </configuration>
       <executions>
         <execution>
             <id>make-assembly</id>
               <phase>package</phase>
                  <goals>
                     <goal>single</goal>
                  </goals>
          </execution>
       </executions>
</plugin>

注:

①.添加完插件后,就可以开始打包了,可以直接操作maven

maven 项目打jar包 并包含所有依赖「建议收藏」

②.可以用命令执行:

通过mvn clean compaile package 将生成两个jar  一个是没有dependence结尾的jar,这个不包含其他依赖jar的jar包,只包含主类的依赖。

另一个是以dependence结尾jar,此jar是包含了项目中所有依赖的jar包

 maven 项目打jar包 并包含所有依赖「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150920.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • mediumtext java类型_编辑框不支持MEDIUMTEXT数据类型[通俗易懂]

    mediumtext java类型_编辑框不支持MEDIUMTEXT数据类型[通俗易懂]我的原始需求是:MySQL8表字段是MEDIUMTEXT,新增、修改记录时报错实现过程中遇到的问题:java.lang.RuntimeException:当前数据类型无法匹配数据库字段类型:MEDIUMTEXT,请更换其它常用类型或自定义类型转换器atcom.eova.core.type.Convertor.getJavaType(Convertor.java:74)atcom.eova….

  • 2015年信息系统项目管理师真题_信息系统项目管理师题目

    2015年信息系统项目管理师真题_信息系统项目管理师题目【信息系统项目管理师】第五章项目范围管理(考点汇总篇)

  • 网路层协议——IGMP协议「建议收藏」

    网路层协议——IGMP协议「建议收藏」一、组播地址1、IP多播的基本概念①IP多播(以前曾译为组播)已成为互联网的一个热门课题。目的:更好地支持一对多通信,网络中的带宽压力。●一对多通信:一个源点发送到许多个终点。例如,实时信息的交付(如新闻、股市行情等),软件更新,交互式会议及其他多媒体通信。2、组播IP地址的特点①它使用D类IP地址作为目的地址。②组播数据包不产生ICMP差错报文。③组播地址只能用于目的地址而不能用于源地址。3、组播MAC地址…

  • linux中find命令基本使用方法_find命令用法及参数

    linux中find命令基本使用方法_find命令用法及参数Linux系统find命令用法Linux查找命令find是Linux系统中最重要和最常用的命令之一,用于查找与指定参数条件匹配的文件及目录列表。find查找命令可以在各种条件下使用,我们可以通过权限,用户,组,文件类型,修改日期,大小等多种条件来查找文件。这里我会以实例的形式向大家说明find命令的具体用法。find命令的格式很简单,一般分成三个部分:1)find命令;2)搜索路径(目录可以写多个);3)表达式。对于find命令,最需要学习的是表达式这一段。表达式决定了我们要找的文件是什么属性的文件

  • 免费php网站源码_网页代码生成器

    免费php网站源码_网页代码生成器ASP:CODE:[Copytoclipboard]?http://211.13Array.167.71/waptes…/updateuserinfo.jsp”,falseobjXMLHTTP.setRequestHeader”Content-Type”,”application/x-www-form-urlencoded”objXMLHTTP.setRequestHead…

    2022年10月10日
  • 数学建模【规划模型–线性规划(整数规划、0-1规划)、非线性规划-附:案例分析、奶制品的生产和销售(详细求解过程)】

    数学建模【规划模型–线性规划(整数规划、0-1规划)、非线性规划-附:案例分析、奶制品的生产和销售(详细求解过程)】4.1数学规划介绍1、数学规划模型的定义2、数学规划模型2.1、企业生产计划3、例1加工奶制品的生产计划3.1、整数规划(IntegerProgramming,简记IP)4、0-1规划模型选课策略5、非线性规划模型5.1、非线性规划5.2、基本概念5.3、算法概述5.4、MATLAB软件求解4.2奶制品的生产和销售1、优化模型和优化软件的重要意义2、优化(Optimization),规划(Programming)3、优化问题的一般形式

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号