Maven工程打jar包的N种方式
Maven工程打jar包
- 一、IDEA自带打包插件
- 二、maven插件打包
- 2.1 制作瘦包(直接打包,不打包依赖包)
- 2.2 制作瘦包和依赖包(相互分离)
- 2.3 制作胖包(项目依赖包和项目打为一个包)
- 2.4 制作胖包(transform部分自定义)
- 三、SpringBoot项目打包
- 四、Scala项目打包
- 五、groovy项目打包
一、IDEA自带打包插件
内容:此种方式可以自己选择制作胖包或者瘦包,但推荐此种方式制作瘦包。
输出:输出目录在out目录下
流程步骤:
- 第一步: 依次选择 file->projecct structure->artifacts->点击+ (选择jar)->选择 from module with dependencies
- 第二步:弹出窗口中指定Main Class,是否选择依赖jar包,是否包含测试。(尽量不选依赖包,防止依赖包选择不全)
- 第三步:点击Build–>Build Artifacts–>选择bulid
二、maven插件打包
输出:输出目录在target目录下
2.1 制作瘦包(直接打包,不打包依赖包)
内容:仅打包出项目中的代码到JAR包中。
方式:在pom.xml中添加如下plugin; 随后执行maven install
<!-- java编译插件 -->
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>指定版本</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration>
</plugin>
2.2 制作瘦包和依赖包(相互分离)
内容:将依赖JAR包输出到lib目录方式(打包方式对于JAVA项目是通用的)
将项目中的JAR包的依赖包输出到指定的目录下,修改outputDirectory配置,如下面的${project.build.directory}/lib。
方式:
pom.xml的build>plugins中添加如下配置。
点击maven project(右边栏)->选择Lifecycle->点击package打包
注意:如果想将打包好的JAR包通过命令直接运行,如java -jar xx.jar。需要制定manifest配置的classpathPrefix与上面配置的相对应。如上面把依赖JAR包输出到了lib,则这里的classpathPrefix也应指定为lib/;同时,并指定出程序的入口类,在配置mainClass节点中配好入口类的全类名。org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 UTF-8 org.apache.maven.plugins maven-jar-plugin true lib/ com.yourpakagename.mainClassName org.apache.maven.plugins maven-dependency-plugin copy install copy-dependencies ${project.build.directory}/lib
注意:默认的classpath会在jar包内。为了方便,可以在Main方法配置后加上manifestEntries配置,指定classpath。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <classesDirectory>target/classes/</classesDirectory> <archive> <manifest> <!-- 主函数的入口 --> <mainClass>com.yourpakagename.mainClassName</mainClass> <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 --> <useUniqueVersions>false</useUniqueVersions> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> <manifestEntries> <Class-Path>.</Class-Path> </manifestEntries> </archive> </configuration>
</plugin>
2.3 制作胖包(项目依赖包和项目打为一个包)
内容:将项目中的依赖包和项目代码都打为一个JAR包
方式:
pom.xml的build>plugins中添加如下配置;
点击maven project(右边栏)->选择Plugins->选择assembly->点击assembly:assembly
注意:1. 针对传统的JAVA项目打包;
2. 打包指令为插件的assembly命令,尽量不用package指令。org.apache.maven.plugins maven-assembly-plugin 2.5.5 com.xxg.Main jar-with-dependencies
2.4 制作胖包(transform部分自定义)
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>2.4.3</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><filters><filter><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude></excludes></filter></filters><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>META-INF/spring.handlers</resource></transformer><transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>META-INF/spring.schemas</resource></transformer><transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>META-INF/spring.tooling</resource></transformer><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.xxx.xxxInvoke</mainClass></transformer></transformers><minimizeJar>true</minimizeJar><shadedArtifactAttached>true</shadedArtifactAttached></configuration></execution></executions>
</plugin>
三、SpringBoot项目打包
内容:将当前项目里所有依赖包和当前项目的源码都打成一个JAR包,同时还会将没有依赖包的JAR包也打出来,以.original保存
方式:
在pom.xml的build>plugins中加入如下配置
点击maven project(右边栏)->选择Lifecycle->点击package或install打包
org.springframework.boot spring-boot-maven-plugin
四、Scala项目打包
方式:
在pom.xml的build>plugins中加入如下配置
点击maven project(右边栏)->选择Lifecycle->点击package或install打包
org.scala-tools maven-scala-plugin compile testCompile ${scala.version} -target:jvm-1.5
五、groovy项目打包
方式:
在pom.xml的build>plugins中加入如下配置
点击maven project(右边栏)->选择Lifecycle->点击package或install打包
org.codehaus.gmavenplus gmavenplus-plugin 1.2 addSources addStubSources compile execute
Maven工程打jar包的N种方式相关推荐
- maven 引入外部jar包的几种方式
方式1:dependency 本地jar包 <dependency><groupId>com.hope.cloud</groupId> <!--自定义--&g ...
- 关于IDEA maven工程打jar包无法引入手动导入的jar包问题的解决方式
关于IDEA maven工程打jar包无法引入手动导入的jar包问题的解决方式 昨天在完成一个模块的编写后,要将项目打成jar包后发给测试人员,但是有一个手动引入的jar包一直出现找不到程序包的错误, ...
- docker部署jar包的几种方式
docker部署jar包的几种方式 前言 使用Dockerfile手动打包jar 简单打包运行 进化:可复用容器 究极进化:jdk镜像直接创建可服用容器 超究极进化:maven插件打包(不推荐) 无聊 ...
- Eclipse下导入外部jar包的3种方式
转载自 Eclipse下导入外部jar包的3种方式 我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3 ...
- Intellij IDEA 添加jar包的三种方式
Intellij IDEA 添加jar包的三种方式 inzaghihalo https://blog.csdn.net/superinzaghi747/article/details/80539095 ...
- Linux 运行jar包的几种方式
nohup java -jar wechat-push-0.0.1-SNAPSHOT.jar > wechat-push-0.0.1.out 2>&1 & 一.Linux ...
- 全网最全Linux 运行jar包的几种方式
一.Linux 运行jar包的几种方式 方式一: java -jar xxx.jar 最常用的启动jar包命令,特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 ...
- Maven工程引入jar包(转)
Maven项目引入jar包的方法,希望能帮助有需要的朋友们 法一.手动导入:项目右键->Build Path->Configure Build Path->选中Libraries-& ...
- 从Maven中央仓库网站下载jar包的两种方式,将会伴随java后端开发者的整个职业生涯
这个肥肠重要的网站就是:https://mvnrepository.com/ 下面我会以mysql-connector-java-8.0.26.jar为例,教会你使用两种方式下载使用jar包资源 首先 ...
最新文章
- 全国成人计算机考试题,成人计算机考试试题.docx
- 阿里云弹性计算产品负责人:让客户用上本地化的公共云
- c++中unordered_map的坑
- all方法 手写promise_promise.all的实现
- 项目思考001---近期这个电台购物项目的一点点思考
- rails提供的validators
- cocos2dx 云彩特效
- PHP文件上传后缀名与文件类型对照表
- cmake导入so库_(转)HelloWorld CMake CMake中构建静态库与动态库及其使用
- task 13-change the lcd to 32bpp form 16bpp.
- linux的shell命令
- 51单片机的红外计数器设计
- linux shell 切换目录,如何在Shell中快速切换目录?
- Miss okhttp
- phpunit问题与解决
- PPPoE获取到32位掩码的研究
- 零基础编程教学实录-000 思考要与不要
- 茜色的坂道SP线是啥鸟语?3级E文果然功力不够
- 一个电脑接两个显示器(win10)
- CSS (3) | 盒子
热门文章
- Apollo之Canbus处理来自Control的Cmd
- “只要3分钟,我就能扒光你的隐私!” | 互联网时代,14亿中国人都在裸奔
- ROS学习:cv_bridge与opencv版本冲突三种解决方案
- Android看韩漫软件,第一韩漫app-第一韩漫安卓版v1.0
- 万物皆对象,Python的对象概述(简述)
- 利用vscode高效阅读《You Don't Know JS》
- OJ每日一练——鸡尾酒疗法
- 个人网站如何防御攻击?
- 工控服务器什么作用,服务器与工控机的用处和区别在哪?
- jupterLab 路径报错: No such file or directory