• 场景描述

idea 启动 spring boot项目的时候 ,idea 提示 command line is too long 命令行过长,于是想到 可能是项目依赖的jar包过多,导致 idea启动时使用的命令行过长,进而想到 是否可以把核心项目所依赖的jar包一起打包生成一个jar包,于是就找到了 maven-assembly-plugin 这个插件,

  • maven-assembly-plugin 插件使用

第一次使用的配置如下

<!--
如下配置 最终生成两个 jar包
1.  ${project.name}-${project.version}.jar
2.  ${project.name}-${project.version}-jar-with-dependencies.jar
上述两个jar包按照顺序 依次简称为 1和 2.
最终 1.jar 上传到了私服 2.jar 只在本地存在.所以2.jar 还是无法给其他项目使用,于是想能否配置 2.jar的名字为 1.jar的名字
于是 有了第二次配置
--><build><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>

第二次配置如下

<!--
如下配置 最终生成了一个jar包, 并且该jar包也能通过 deploy命令发布到私服 其他项目也可以使用了
但是在项目打包的过程中,会看到一个如下的黄色警告
[WARNING] Artifact: xxxx:xxxx:jar:xxxx references the same file as the assembly destination file. Moving it to a temporary location for inclusion.
通过查看打包日志  发现了插件 maven-jar-plugin 也打包生成了一个jar包,因此猜想可能是因为这个插件的原因才给出黄色警告
于是想把maven-jar-plugin 插件排除掉试试
--><build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><appendAssemblyId>false</appendAssemblyId><finalName>${project.name}-${project.version}</finalName></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>

第三次配置

<!--
排除掉了maven-jar-plugin插件 解决了 `第二次配置` 的黄色警告 但是还存在两个黄色警告
[WARNING] Configuration option 'appendAssemblyId' is set to false.
[WARNING] Replacing pre-existing project main-artifact file:
--><build><plugins><plugin><artifactId>maven-jar-plugin</artifactId><version>3.2.0</version><executions><execution><id>default-jar</id><phase>none</phase></execution></executions></plugin><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><appendAssemblyId>false</appendAssemblyId><finalName>${project.name}-${project.version}</finalName></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>
  • 代办 两个警告未解决
[WARNING] Configuration option 'appendAssemblyId' is set to false.
[WARNING] Replacing pre-existing project main-artifact file:
  • 2020-09-15 第四次配置 >>>>> 仍然未到达目的
<build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><appendAssemblyId>false</appendAssemblyId><finalName>${project.name}-${project.version}</finalName><descriptors><descriptor>assembly.xml</descriptor></descriptors></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>

assembly.xml 内容

<?xml version='1.0' encoding='UTF-8'?>
<assembly xmlns="http://maven.apache.org/ASSEMBLY/${mdoVersion}"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/${mdoVersion} http://maven.apache.org/xsd/assembly-${mdoVersion}.xsd"><!-- TODO: a jarjar format would be better --><id>jar-with-dependencies</id><formats><format>jar</format></formats><includeBaseDirectory>false</includeBaseDirectory><fileSets><fileSet><directory>${project.build.outputDirectory}</directory><outputDirectory>/</outputDirectory><includes><include>**/**</include></includes></fileSet></fileSets><dependencySets><dependencySet><outputDirectory>/lib/</outputDirectory><useProjectArtifact>false</useProjectArtifact><unpack>false</unpack><scope>runtime</scope></dependencySet></dependencySets>
</assembly>

结果展示:

将所有的依赖打包成一个jar包 maven-assembly-plugin相关推荐

  1. java assembly_Maven之多模块打包成一个jar包及assembly

    一.多模块打包 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt ...

  2. jar打包 剔除第三方依赖以及它的依赖_maven打包成第三方jar包且把pom依赖包打入进来的方法...

    添加此PLUGIN到项目的POM.XML中 maven-assembly-plugin com.allen.capturewebdata.Main jar-with-dependencies 如果出现 ...

  3. Maven 打包成第三方jar包且把pom依赖包打入进来的方法

    <Maven 打包成第三方jar包且把pom依赖包打入进来的方法> 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! <Maven 打包成第三方jar包且把po ...

  4. java jar合并_多个jar包合并成一个jar包(ant)

    https://blog.csdn.net/gzl003csdn/article/details/53539133 多个jar包合并成一个jar 使用Apache的Ant是一个基于Java的生成工具. ...

  5. 大屏监控系统实战(4)-如何将SpringBoot+Vue前后端分离项目一次打包为一个Jar包运行?

    玩过最新版Dubbo管控台的都知道,人家是个前后端分离的项目,可是一条打包命令能让两个项目整合在一起,生成一个jar包,这样的好处显而易见,部署的时候服务器不需要安装node环境单独部署前端项目,或者 ...

  6. docker file 打包jar_Spring Boot 的项目打包成的 JAR 包,制作成 docker 镜像并运行

    首先把本地的项目打包好,我这里直接把已经打包好的springboot-mybatis-0.0.1-SNAPSHOT.jar包直接上传到linuxmydemo目录中并在此目录创建Dockerfile文件 ...

  7. 把文件夹下的所有文件打包成一个zip包

    2019独角兽企业重金招聘Python工程师标准>>> 代码如下: 一.打包过程: 所需要jar包:安装上Java环境就可以了 package filetozip; import j ...

  8. javafx打包成的jar包中包含excel等office模板文件,如何从jar包中读取这些模板文件?

    实现的Java FX项目中有excel模板文件读取功能,idea下运行可以,但是打包的jar文件在运行时,不能识别jar文件中的excel模板文件,先看看以下代码: String filePath = ...

  9. Maven打包可执行jar包方法大全(史上最全)

    目录 打包方法 方法一:使用maven-jar-plugin和maven-dependency-plugin 方法二:使用maven-assembly-plugin (推荐) 方法三:使用maven- ...

  10. 使用Maven Assembly plugin将依赖打包进jar

    一个Eclipse的工程,在pom中配置了若干依赖,需要将pom中所有的依赖全部打包进一个jar包中,可以选择的方案有maven-assembly-plugin和fatjar.以前采用fatjar进行 ...

最新文章

  1. ECshop--搜索模块细究
  2. 少有人走过的路:分析-策略-产品
  3. python 多线程 线程如何获得返回值 (重写threading.Thread类)
  4. 基于Erlang的并发程序简要
  5. sql2008安装时提示参数不能为空_Java Validation API,实现参数的合法性校验
  6. HDU - 4552 怪盗基德的挑战书(后缀数组+RMQ/KMP+dp)
  7. java web 通过servlet访问web_inf jsp跳转_WEB-INF下的jsp通过servlet中超链接跳转
  8. 技巧 | 如何使用R语言的基础绘图系统的拼图功能
  9. javascript获取asp.net服务器端控件的值
  10. 歌词 —— 那些花儿
  11. MongoDB 将Json数据直接写入MongoDB的方法
  12. C语言实现直接选择排序
  13. 老男孩 linux 2014 360下载,360安全卫士2014旧版
  14. 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第一章
  15. mysql 之 增删改查
  16. 我的第一个小程序(Discuz! + 微信小程序)
  17. 阿里安全专家BlackHat和DEFCON现场演示:一分钟越狱iOS 11.4
  18. 基于Java的网上手机销售系统的设计与实现(附:源码 论文 sql文件 部署视频)
  19. 向上累积频数怎么算_累计频数怎么求(怎样计算频数和频率)
  20. 万维网服务器如何发送文档,服务器配置和管理教学讲义(39页)-原创力文档

热门文章

  1. 机器人ccid认证_机器人3·15 揭示产品质量六大痛点
  2. 分表与分库使用场景以及设计方式
  3. 驻留集与工作集的区别
  4. 面向对象设计的基本原则之--多用组合,少用继承原则
  5. 让文字沿着路径动起来 (SVG)
  6. debian root登录
  7. java基础入门-21-【阶段综合案例(带权重的随机每日一记)】
  8. Building for iOS Simulator, but the linked......错误的解决方案,Xcode 12
  9. 应该了解的数据库系统高性能利器-WAL
  10. C#: 将可空的对象传给非空类型参数