将所有的依赖打包成一个jar包 maven-assembly-plugin
- 场景描述
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相关推荐
- java assembly_Maven之多模块打包成一个jar包及assembly
一.多模块打包 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt ...
- jar打包 剔除第三方依赖以及它的依赖_maven打包成第三方jar包且把pom依赖包打入进来的方法...
添加此PLUGIN到项目的POM.XML中 maven-assembly-plugin com.allen.capturewebdata.Main jar-with-dependencies 如果出现 ...
- Maven 打包成第三方jar包且把pom依赖包打入进来的方法
<Maven 打包成第三方jar包且把pom依赖包打入进来的方法> 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! <Maven 打包成第三方jar包且把po ...
- java jar合并_多个jar包合并成一个jar包(ant)
https://blog.csdn.net/gzl003csdn/article/details/53539133 多个jar包合并成一个jar 使用Apache的Ant是一个基于Java的生成工具. ...
- 大屏监控系统实战(4)-如何将SpringBoot+Vue前后端分离项目一次打包为一个Jar包运行?
玩过最新版Dubbo管控台的都知道,人家是个前后端分离的项目,可是一条打包命令能让两个项目整合在一起,生成一个jar包,这样的好处显而易见,部署的时候服务器不需要安装node环境单独部署前端项目,或者 ...
- docker file 打包jar_Spring Boot 的项目打包成的 JAR 包,制作成 docker 镜像并运行
首先把本地的项目打包好,我这里直接把已经打包好的springboot-mybatis-0.0.1-SNAPSHOT.jar包直接上传到linuxmydemo目录中并在此目录创建Dockerfile文件 ...
- 把文件夹下的所有文件打包成一个zip包
2019独角兽企业重金招聘Python工程师标准>>> 代码如下: 一.打包过程: 所需要jar包:安装上Java环境就可以了 package filetozip; import j ...
- javafx打包成的jar包中包含excel等office模板文件,如何从jar包中读取这些模板文件?
实现的Java FX项目中有excel模板文件读取功能,idea下运行可以,但是打包的jar文件在运行时,不能识别jar文件中的excel模板文件,先看看以下代码: String filePath = ...
- Maven打包可执行jar包方法大全(史上最全)
目录 打包方法 方法一:使用maven-jar-plugin和maven-dependency-plugin 方法二:使用maven-assembly-plugin (推荐) 方法三:使用maven- ...
- 使用Maven Assembly plugin将依赖打包进jar
一个Eclipse的工程,在pom中配置了若干依赖,需要将pom中所有的依赖全部打包进一个jar包中,可以选择的方案有maven-assembly-plugin和fatjar.以前采用fatjar进行 ...
最新文章
- ECshop--搜索模块细究
- 少有人走过的路:分析-策略-产品
- python 多线程 线程如何获得返回值 (重写threading.Thread类)
- 基于Erlang的并发程序简要
- sql2008安装时提示参数不能为空_Java Validation API,实现参数的合法性校验
- HDU - 4552 怪盗基德的挑战书(后缀数组+RMQ/KMP+dp)
- java web 通过servlet访问web_inf jsp跳转_WEB-INF下的jsp通过servlet中超链接跳转
- 技巧 | 如何使用R语言的基础绘图系统的拼图功能
- javascript获取asp.net服务器端控件的值
- 歌词 —— 那些花儿
- MongoDB 将Json数据直接写入MongoDB的方法
- C语言实现直接选择排序
- 老男孩 linux 2014 360下载,360安全卫士2014旧版
- 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第一章
- mysql 之 增删改查
- 我的第一个小程序(Discuz! + 微信小程序)
- 阿里安全专家BlackHat和DEFCON现场演示:一分钟越狱iOS 11.4
- 基于Java的网上手机销售系统的设计与实现(附:源码 论文 sql文件 部署视频)
- 向上累积频数怎么算_累计频数怎么求(怎样计算频数和频率)
- 万维网服务器如何发送文档,服务器配置和管理教学讲义(39页)-原创力文档
热门文章
- 机器人ccid认证_机器人3·15 揭示产品质量六大痛点
- 分表与分库使用场景以及设计方式
- 驻留集与工作集的区别
- 面向对象设计的基本原则之--多用组合,少用继承原则
- 让文字沿着路径动起来 (SVG)
- debian root登录
- java基础入门-21-【阶段综合案例(带权重的随机每日一记)】
- Building for iOS Simulator, but the linked......错误的解决方案,Xcode 12
- 应该了解的数据库系统高性能利器-WAL
- C#: 将可空的对象传给非空类型参数