spring boot 工程 Maven 打包总结
一、jar包方式打包时将依赖单独打包
将代码和依赖的jar分开打包,在依赖没更新时可以大大减小版本体积,漏洞升级时也可以像外置tomcat一样直接替换jar包。
1. 配置maven插件
<build><plugins><!--拷贝依赖jar包到lib目录--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy-lib</id><!-- 只有mvn package 时执行--><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><!-- 将所有依赖复制到 target/lib 目录 --><outputDirectory>${project.build.directory}/lib</outputDirectory><excludeTransitive>false</excludeTransitive><stripVersion>false</stripVersion><overWriteIfNewer>true</overWriteIfNewer></configuration></execution></executions></plugin></plugins>
</build>
2.修改启动脚本
将依赖jar包存放到lib目录下,修改启动脚本,生产上请注意lib目录和文件的用户权限
java -jar xxx.jar -Dloader.path=lib
二、资源与配置文件分离
资源与配置文件单独存放,方便在生产上核对配置文件
1. 配置maven插件
<!-- 拷贝资源文件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.7</version><executions><execution><id>copy-resources</id><!-- 只有mvn package 时执行 --><phase>package</phase><goals><goal>copy-resources</goal></goals><configuration><!-- --><outputDirectory>${project.build.directory}</outputDirectory><resources><resource><!-- 指定目录和文件 --><directory>src/main/resources</directory><includes><exclude>**/*.sh</exclude><exclude>**/*.properties</exclude><exclude>**/*.yml</exclude></includes><filtering>true</filtering></resource></resources><encoding>UTF-8</encoding></configuration></execution></executions></plugin>
2. 修改启动脚本
指定使用的配置文件
java -jar xxx.jar --spring.config.location=application-xxx.properties
三、私有jar包自动安装
私有jar包公共仓库一般没有,通过通过插件方式可以实现自动安装。
1.配置插件
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-install-plugin</artifactId><version>2.5.2</version><executions><execution><id>install-netpay</id><!-- 在validate阶段自动安装 --><phase>validate</phase><configuration><!-- 私有jar存放在工程lib目录下--><file>${project.basedir}/lib/netpay-1.0.jar</file><repositoryLayout>default</repositoryLayout><groupId>com.xxx.netpay</groupId><artifactId>netpay</artifactId><version>1.0</version><packaging>jar</packaging><generatePom>true</generatePom></configuration><goals><goal>install-file</goal></goals></execution></executions></plugin>
2. 执行安装
第一次运行时先执行 mvn validate 安装依赖,再执行mvn compile 或者package
四、私有jar包引入与打包
如果不想将jar安装到本地仓库,通过指定scope为系统路径引入
<dependency><groupId>com.issmobile.wash</groupId><artifactId>qrcode-encoder</artifactId><scope>system</scope><systemPath>${basedir}/lib/qrcode-encoder-1.0.jar</systemPath></dependency>
这种方式打包时不会将本地依赖打入,需要增加配置
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><includeSystemScope>true</includeSystemScope></configuration></plugin>
五、将jar包复制到指定目录
例如将版本包直接复制到指定version目录,省的再去target目录找
<!-- 将jar文件复制到根目录version目录 --><plugin><artifactId>maven-antrun-plugin</artifactId><executions><execution><phase>package</phase><goals><goal>run</goal></goals><configuration><tasks><mkdir dir="${project.basedir}/../../version/"/><copy todir="${project.basedir}/../../version/" overwrite="true" ><fileset dir="${project.build.directory}" erroronmissingdir="false"><include name="*.jar"/><include name="*.sh"/><include name="*.properties"/><include name="*.yml"/></fileset></copy></tasks></configuration></execution></executions></plugin>
spring boot 工程 Maven 打包总结相关推荐
- Spring Boot使用maven打包成jar后将依赖jar一起打进jar文件
2019独角兽企业重金招聘Python工程师标准>>> <plugin> <groupId>org.springfra ...
- 【Mybatisplus】创建Spring Boot工程打包错误解决方法
目录 打包问题解决方法在文章末尾 创建Spring Boot工程 a.初始化工程 b.引入依赖 编写代码 a.配置application.yml 了解一下配置application.propertie ...
- 使用Maven创建多模块父子Spring Boot工程
使用Maven创建Spring Boot工程_紫月下枫叶的博客-CSDN博客目录1.开发环境2.创建普通maven工程3.添加Spring Boot父工程4.添加Web场景依赖5.添加主程序6.添加C ...
- Spring boot的Maven插件(一):repackage目标
简介 Spring Boot Maven Plugin插件提供spring boot在maven中的支持.允许你打包可运行的jar包或war包. 插件提供了几个maven目标和Spring Boot ...
- Spring Boot项目(Maven\Gradle)三种启动方式及后台运行详解
Spring Boot项目三种启动方式及后台运行详解 1 Spring Boot项目三种启动方法 运行Application.java类中的Main方法 项目管理工具启动 Maven项目:mvn sp ...
- Spring boot的Maven配置依赖
Spring boot 的 Maven 配置依赖 springboot spring pom maven models 我们通过引用spring-boot-starter-parent,添加sprin ...
- spring boot项目Intellij 打包
spring boot项目Intellij 打包 学习了:http://blog.csdn.net/hzt_fighting_up/article/details/78174291 在edit con ...
- Spring Boot+Vue项目打包部署
在前后端分离的项目中,最后前后端项目开发完毕都需要进行打包部署发布到服务器上面运行,所以需要对前端开发的项目进行打包,然后将打包后的文件放在spring boot项目中的resource/static ...
- Spring Boot 工程集成全局唯一ID生成器 Vesta
2019独角兽企业重金招聘Python工程师标准>>> 本文内容脑图如下: 文章共 760字,阅读大约需要 2分钟 ! 概 述 在前一篇文章 <Spring Boot工程集成全 ...
最新文章
- MyBatis框架的文件配置
- 从Config文件中读取节点的配置信息
- 安装SandcastleInstaller
- linux 引用其它脚本中的变量
- 零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)
- ubuntu snmp Error: unknown payload OID
- OAuth2.0在项目中认证流程介绍
- 动态规划训练24 [Phalanx HDU - 2859 ]
- 基于vue的UI框架集锦(移动端+pc端)
- 自己移植Asterisk1.8到OpenWRT下
- Servlet Request
- 联想微型计算机怎么恢复系统,联想电脑台式一体机怎么重装系统 台式一体机重装系统...
- 解析搜索引擎的Robots协议
- java生命游戏并行_Java架构--线程的发展历史
- iOS AppStore Search optimize【 ASO项目使用的技术】之切换IP(基于CFRunLoopDoSources0自定义Operation执行切换IP任务)
- 电脑小手图标怎么去除_取消共享文件夹图标上的小手
- 暮光之城电影自制礼物大事记
- 认识Http协议(超文本传输协议)
- Docker Compose搭建TDengine集群
- 小度总显示服务器连接失败,小度本地端口分配失败是什么意思
热门文章
- python tk教程_【转】【Python】Tkinter教程
- GPL LGPL Apache2.0 BSD 开源协议扫盲帖
- Lucene 索引文件的读取(十四)之fdxfdtfdm
- 微信群管理服务器软件哪个好用吗,微信群管理软件机器人(比较好用的微信社群管理软件)...
- JZSearch精准全文搜索引擎共享开发包 v4.5
- java map put get_JAVA中MAP的PUT函数和GET函数用法
- [转载]初识Windows 脚本文件(*.wsf)
- windows修改ip地址
- python与其他编程语言的区别分析
- Learning Without Forgetting 笔记及实现