用Maven构建 Fat JAR
Maven可以将你的Java项目构建成一个Fat JAR。 Fat JAR是一个单个JAR文件,其中包含项目中所有已编译的Java类以及项目所依赖的所有JAR文件。
当你需要构建可执行的JAR文件时,Fat JAR会很方便。如:微服务。你可以将你的微服务及其所有依赖项打包到一个JAR文件中。这使执行变得更加容易,因为你不必在类路径中列出微服务所依赖的所有JAR文件,这简化了启动微服务的命令。
如果你需要将应用程序打包在Docker容器中,Fat JAR也很方便。无需将应用程序依赖的每个JAR文件添加到Docker容器,只需添加应用程序的Fat JAR,并且使Dockerfile与应用程序使用的外部依赖项(JAR文件)无关。
1.Fat JAR POM配置
为了使用Maven从项目中构建Fat JAR,必须在项目的POM文件中包含Fat JAR构建配置。
通过将maven-assembly-plugin包含在POM文件的plugin部分中,可以配置Maven从项目中构建Fat JAR。
<build><finalName>my-project-name</finalName><plugins><!-- other Maven plugins ... --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.1.1</version><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>
configuration XML元素内的maven-assembly-plugin包含一个descriptorRef,它告诉Maven应构建哪种类型的程序集。 jar-with-dependencies值告诉Maven构建具有依赖关系的JAR文件,这其实是Fat JAR的另一个术语。
executions XML元素告诉Maven该Maven插件应在哪个阶段和目标期间执行。 这个maven-assembly-plugin指定在打包阶段执行。
2.使用Maven命令来构建Fat JAR
构建Fat JAR的Maven命令:
mvn clean package
当使用前面显示的maven-assembly-plugin配置执行Maven package阶段时,Maven将在target目录中输出Fat JAR,Maven将其所有其他构建(例如,编译的类,生成的JavaDocs等)都输出到该目录中。 Fat JAR的命名如下:
my-project-name-jar-with-dependencies.jar
上述Fat JAR文件名中my-project-name是示例中的build XML元素中最上面finalName XML元素的值。
其它选择参考文档: http://maven.apache.org/plugins/maven-assembly-plugin/
3.完整POM文件Fat JAR配置
这是Fat JAR配置的完整Maven POM文件:
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.jenkov.myprojectname</groupId><artifactId>my-project-name</artifactId><version>1.1.0</version><packaging>jar</packaging><name>My Project Name</name><dependencies><!-- Dependencies used by project --></dependencies><build><finalName>my-project-name</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.6.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.1.1</version><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> </project>
原文地址: https://www.zhblog.net/go/java/tutorial/maven-build-fat-jar?t=633
用Maven构建 Fat JAR相关推荐
- spring boot 使用maven和fat jar/war运行应用程序的对比
文章目录 简介 Spring Boot Maven Plugin 使用Maven命令来运行应用程序 作为fat jar/war包运行应用程序 详解War文件 详解jar文件 如何选择 使用maven和 ...
- axure 小程序 lib_使用maven和fat jar/war运行应用程序的对比
简介 上篇文章我们介绍了Spring boot的fat jar/war包,jar/war包都可以使用 java -jar 命令来运行,而maven也提供了mvn spring-boot:run 命令来 ...
- maven构建本地jar包到本地仓库
maven命令: mvn:install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=1.0 -Dpackaging ...
- 使用Maven构建Dubbo服务的可运行jar包
本文为<基于Dubbo的分布式系统架构视频教程>的课程系列文档,更多课程信息,请关注:http://www.roncoo.com Dubbo视频教程--基础篇--第07节--使用Maven ...
- maven构建可执行jar包
一 将maven构建的工程打成jar包,并使用脚本做定时任务 1.首先将maven搭建的工程打成jar 需要在将该工程所支持的类库打在一个包中(默认情况下,maven在做mvn pakage时, ...
- java自带的unpack闪退,java - 使用requiresUnpack无法正常使用Maven构建的Spring Boot JAR - 堆栈内存溢出...
我的POM看起来像这样: xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/ ...
- 使用Intellij Idea创建第一个SpringBoot+MyBatis+MySql项目并运行(附安装教程),使用Maven构建项目并管理第三方jar
Intellij Idea 背景 开发工具及主要框架 Maven 下载安装 settings.xml修改 IDEA配置Maven 注册私有jar Maven打包 MySql安装 配置环境变量 Inte ...
- Jenkins中Maven构建Archiving会重命名jar
[问题来源]jenkins配置Maven构建时,在Archiving的时候,会修改名字: [JENKINS] Archiving /proj/ip_ers/jenkins_**/6018/s11/wo ...
- 【sping boot】run as maven install 和buid fat jar打包不一样 后者运行不起来
打包后线上运行报错 11:53:10.088 [main] ERROR org.springframework.boot.SpringApplication - Application run fai ...
- 在HubSpot是如何应对Fat JAR困境的
在七月底,Spring Boot和Dropwizard分别发布了1.4和1.0版本,它们都是基于Fat JAR的.随着人们更多地采用这些框架和微服务架构,Fat JAR成为了通用的部署机制. \\ F ...
最新文章
- python在哪里写程序和运行-如何编写和运行Python程序
- mysql 批量插入数据过多的解决方法
- linux:ubantu中pycharm专业版安装
- 解决com.xpand.. starter-canal 依赖引入问题
- opencv进阶学习笔记11:cannny边缘检测,直线检测,圆检测
- 【343天】每日项目总结系列081(2018.01.14)
- linux 下 oracle 10.2.0.1 32bit netca报错
- java url下载ics_使用Microsoft Graph API处理外部(Internet / .ics)日历URL
- centos mysql 允许远程访问
- oracle中使用sql查询时字段为空则赋值默认
- 7-2 数组元素循环右移问题 (40 分)
- iOS学习笔记-retain/assign/strong/weak/copy/mutablecopy/autorelease区别
- Linux 中Vim 命令大全
- 专访飞康新任CEO:云时代下,我们更懂数据保护
- 案例推荐《微博:随时随地迎战大流量》
- 【文章】《陋室铭》《陋妻铭》《微信铭》《交友铭》《老人铭》
- 动态网页编程新手入门必读
- 加入AI考拉大家庭,是一种怎样的体验?--来自考拉码农的心声
- 2020北航计算机夏令营机试题目个人理解
- oracle11g断电后无法启动,电脑突然断电后无法启动