maven打包的5种方式总有一款适合你【超赞】

maven打包的5种方式总有一款适合你【超赞】1 用于生成 META INF MANIFEST MF 文件的部分内容 com xxg Main 指定 MANIFEST MF 中的 Main Class true 会在 MANIFEST MF 加上 Clas

大家好,欢迎来到IT知识分享网。

目录

一 问题阐述

1.1 概述

1.2 原因

1.3 解决办法

二 Maven常用打包插件

2.1 pom文件无配置打包插件

2.2 maven-assembly-plugin插件打包

2.2.1 作用

2.2.2 案例操作1:入口为普通类

2.2.3 案例操作2:入口为springboot启动类

2.3 maven-shade-plugin插件打包

2.3.1 作用

2.3.2 案例

2.4 maven-jar-plugin和maven-dependency-plugin插件打包

2.4.1 插件作用

2.4.2 maven-jar-plugin 插件功能介绍

2.4.3 maven-jar-plugin 打包案例

2.4.4 maven-dependency-plugin插件作用

2.4.5 maven-dependency-plugin的案例

2.5 appassembler-maven-plugin插件打包

2.5.1 作用

2.5.2 案例配置

 2.6 spring-boot-maven-plugin插件springboot标准打包

2.6.1 作用

2.6.2  案例

2.7 总结

一 问题阐述

1.1 概述

在讲打包方式之前,首先来说最近踩到的坑,在idea新建的maven项目,在pom文件中会自动生成一段插件的管理器:

maven打包的5种方式总有一款适合你【超赞】

2.我使用maven打包插件maven-assembly-plugin,将其配置添加到<plugManagement><plugs>.. ..</plugs></plugManagement>中间。

maven打包的5种方式总有一款适合你【超赞】

3.执行maven 打包后:报没有主清单,如下图所示:

maven打包的5种方式总有一款适合你【超赞】

将网上查找了个遍,痛苦到怀疑人生,也没有发现什么端倪,感觉配置的很正确,并且在eclipse中都在项目中用过。

1.2 原因

先来了解一下pluginManagement:

pluginManagement是表示插件声明,即你在项目中的pluginManagement下声明了插件,Maven不会加载该插件,pluginManagement声明可以被继承。

pluginManagement一般是用来在父POM中定义,提供给子POM使用,子POM也可以覆盖这个定义,而且你在父POM中定义了版本之后,子模块中直接应用groupId和artifactId,而不用指定版本,同时也方便统一管理;而在父POM中的pluginManagement并不会介入到Maven的生命周期。

plugins就是直接引入一个plugin,而且可以绑定到Maven相关的生命周期上。

pluginManagement主要是为了统一管理插件,确保所有子POM使用的插件版本保持一致,类似dependencies和dependencyManagement。

总结一句话:pluginManagement标签中声名的plug插件不参与maven的生命周期,不会被加载,但可以通过子类继承后,子类应用来使用。

这就是为何在plugManagemnet中配置maven-assembly-plugin插件后不起作用,找不到主类的原因。

https://blog.csdn.net/_/article/details/

1.3 解决办法

1.将plugManagement标签里内容清空,自定义的的打包插件配置在</plugmanagement>标签之外。

maven打包的5种方式总有一款适合你【超赞】

2.重新打包,执行jar包

maven打包的5种方式总有一款适合你【超赞】

执行成功ok!

二 Maven常用打包插件

2.1 pom文件无配置打包插件

1.如图

maven打包的5种方式总有一款适合你【超赞】

2.打包后结果

maven打包的5种方式总有一款适合你【超赞】

3.执行结果:无法找到执行主清单

maven打包的5种方式总有一款适合你【超赞】

2.2 maven-assembly-plugin插件打包

2.2.1 作用

作用:将自己项目中的代码和资源,还包含了所有依赖包的内容打成一个jar包。

2.2.2 案例操作1:入口为普通类

1.pom文件的配置:

 <!--自定义打包方式--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.5</version> <configuration> <archive> <manifest> <mainClass>com.ljf.springboot.mybaits.demos.ex.TestNi</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <g

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121687.html

(0)
上一篇 2025-10-22 08:10
下一篇 2025-10-22 08:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信