我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Maven工程打jar包的N种方式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Maven工程打jar包的N种方式

Maven工程打jar包

一、IDEA自带打包插件

内容:此种方式可以自己选择制作胖包或者瘦包,但推荐此种方式制作瘦包。
输出:输出目录在out目录下
流程步骤

  1. 第一步: 依次选择 file->projecct structure->artifacts->点击+ (选择jar)->选择 from module with dependencies
    在这里插入图片描述
  2. 第二步:弹出窗口中指定Main Class,是否选择依赖jar包,是否包含测试。(尽量不选依赖包,防止依赖包选择不全)
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  3. 第三步:点击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。
方式

  1. pom.xml的build>plugins中添加如下配置。
  2. 点击maven project(右边栏)->选择Lifecycle->点击package打包
    注意:如果想将打包好的JAR包通过命令直接运行,如java -jar xx.jar。需要制定manifest配置的classpathPrefix与上面配置的相对应。如上面把依赖JAR包输出到了lib,则这里的classpathPrefix也应指定为lib/;同时,并指定出程序的入口类,在配置mainClass节点中配好入口类的全类名。
<plugins><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix><mainClass>com.yourpakagename.mainClassName</mainClass></manifest></archive></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy</id><phase>install</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration></execution></executions></plugin></plugins>      

注意:默认的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包
方式

  1. pom.xml的build>plugins中添加如下配置;
  2. 点击maven project(右边栏)->选择Plugins->选择assembly->点击assembly:assembly
    注意:1. 针对传统的JAVA项目打包;
    2. 打包指令为插件的assembly命令,尽量不用package指令。
<plugin><groupId>org.apache.maven.plugins</groupId>  <artifactId>maven-assembly-plugin</artifactId>  <version>2.5.5</version>  <configuration>  <archive>  <manifest>  <mainClass>com.xxg.Main</mainClass>  </manifest>  </archive>  <descriptorRefs>  <descriptorRef>jar-with-dependencies</descriptorRef>  </descriptorRefs>  </configuration>  </plugin>       

2.4 制作胖包(transform部分自定义)

org.apache.maven.pluginsmaven-shade-plugin2.4.3packageshade*:*META-INF/*.SFMETA-INF/*.DSAMETA-INF/*.RSAMETA-INF/spring.handlersMETA-INF/spring.schemasMETA-INF/spring.toolingcom.xxx.xxxInvoketruetrue      

三、SpringBoot项目打包

内容:将当前项目里所有依赖包和当前项目的源码都打成一个JAR包,同时还会将没有依赖包的JAR包也打出来,以.original保存
方式

  1. 在pom.xml的build>plugins中加入如下配置
  2. 点击maven project(右边栏)->选择Lifecycle->点击package或install打包
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin>      

四、Scala项目打包

方式

  1. 在pom.xml的build>plugins中加入如下配置
  2. 点击maven project(右边栏)->选择Lifecycle->点击package或install打包
<plugin><groupId>org.scala-tools</groupId><artifactId>maven-scala-plugin</artifactId><executions><execution><goals><goal>compile</goal><goal>testCompile</goal></goals></execution></executions><configuration><scalaVersion>${scala.version}</scalaVersion><args><arg>-target:jvm-1.5</arg></args></configuration></plugin>      

五、groovy项目打包

方式

  1. 在pom.xml的build>plugins中加入如下配置
  2. 点击maven project(右边栏)->选择Lifecycle->点击package或install打包
<plugin><groupId>org.codehaus.gmavenplus</groupId><artifactId>gmavenplus-plugin</artifactId><version>1.2</version><executions><execution><goals><goal>addSources</goal><goal>addStubSources</goal><goal>compile</goal><goal>execute</goal></goals></execution></executions></plugin>      

来源地址:https://blog.csdn.net/zhangjianjaEE/article/details/129263487

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Maven工程打jar包的N种方式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Maven工程打包jar的多种方式

Maven打包一般可以生成两种包一种是可以直接运行的包,一种是依赖包(只是编译包),这篇文章主要介绍了Maven工程打包jar的多种方式步骤详解,需要的朋友可以参考下
2023-05-14

Java之Maven工程打包jar

Maven打包一般可以生成两种包一种是可以直接运行的包,一种是依赖包(只是编译包)。Maven默认打包时jar,如果需要修改其他类型,可以修改pom.xml。感兴趣的同学可以参考阅读
2023-05-14

Java之Maven工程打包jar的方法是什么

这篇文章主要介绍“Java之Maven工程打包jar的方法是什么”,在日常操作中,相信很多人在Java之Maven工程打包jar的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java之Maven工
2023-07-05

maven工程打包引入本地jar包的实现

本文详细介绍了如何在Maven工程中引入本地JAR包,提供了两种方法:使用Maveninstall或Maveninstall:install-file。其中包括pom.xml依赖声明的详细信息和需要注意的事项。引入本地JAR包时,应确保其兼容性,并考虑依赖关系。
maven工程打包引入本地jar包的实现
2024-04-02

Java中Maven的打包方式和执行jar详解

这篇文章主要介绍了Java中maven的打包方式和执行jar,文中有详细的代码示例,有需要的朋友可以借鉴一下
2023-05-18

Maven打包跳过测试的5种方式

今天工作中遇见一个小问题,正好晚上没什么安排,而且也很久没写博客了,我就想着将问题记录一下。 平时开发时的工作的话之主要负责写代码就行了,什么发布项目啊,好吧不是我们干的事。在我们的了解中打包发布项目应该不是一个困难的问题。对,最简单的方法
2023-08-16

Maven 项目用Assembly打包可执行jar包的方法

这篇文章主要介绍了Maven 项目用Assembly打包可执行jar包的方法,该方法只可打包非spring项目的可执行jar包,需要的朋友可以参考下
2023-03-01

Maven引入本地Jar包并打包进War包中的方法

1.概述在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来。2. 拷贝至项目根目录项目根目录即pom.xml文件所在的同级目录,可以在项目根目录下创建文件夹lib,如下图所示:
2023-05-30

Maven打包跳过测试的5种方式总结

使用Maven打包的时候,可能会因为单元测试打包失败,这时候就需要跳过单元测试,下面这篇文章主要给大家介绍了关于Maven打包跳过测试的5种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-30

Windows部署Jar包的三种方式

文章目录 1、cmd命令启动2、bat脚本启动2.1 启动jar包2.2 关闭服务 3、使用WinSW3.1 重命名3.2 xml配置3.3 安装服务3.4 卸载服务3.5 启动和停止服务 1、cmd命
2023-08-18

maven打包web项目时同时打包为war和jar文件的方法

本文介绍了maven打包web项目时同时打包为war和jar文件的方法,分享给大家,具体如下:首先在pom.xml文件中指定war的打包方式,war test test
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录