一、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 打包总结相关推荐

  1. Spring Boot使用maven打包成jar后将依赖jar一起打进jar文件

    2019独角兽企业重金招聘Python工程师标准>>> <plugin>                     <groupId>org.springfra ...

  2. 【Mybatisplus】创建Spring Boot工程打包错误解决方法

    目录 打包问题解决方法在文章末尾 创建Spring Boot工程 a.初始化工程 b.引入依赖 编写代码 a.配置application.yml 了解一下配置application.propertie ...

  3. 使用Maven创建多模块父子Spring Boot工程

    使用Maven创建Spring Boot工程_紫月下枫叶的博客-CSDN博客目录1.开发环境2.创建普通maven工程3.添加Spring Boot父工程4.添加Web场景依赖5.添加主程序6.添加C ...

  4. Spring boot的Maven插件(一):repackage目标

    简介 Spring Boot Maven Plugin插件提供spring boot在maven中的支持.允许你打包可运行的jar包或war包. 插件提供了几个maven目标和Spring Boot ...

  5. Spring Boot项目(Maven\Gradle)三种启动方式及后台运行详解

    Spring Boot项目三种启动方式及后台运行详解 1 Spring Boot项目三种启动方法 运行Application.java类中的Main方法 项目管理工具启动 Maven项目:mvn sp ...

  6. Spring boot的Maven配置依赖

    Spring boot 的 Maven 配置依赖 springboot spring pom maven models 我们通过引用spring-boot-starter-parent,添加sprin ...

  7. spring boot项目Intellij 打包

    spring boot项目Intellij 打包 学习了:http://blog.csdn.net/hzt_fighting_up/article/details/78174291 在edit con ...

  8. Spring Boot+Vue项目打包部署

    在前后端分离的项目中,最后前后端项目开发完毕都需要进行打包部署发布到服务器上面运行,所以需要对前端开发的项目进行打包,然后将打包后的文件放在spring boot项目中的resource/static ...

  9. Spring Boot 工程集成全局唯一ID生成器 Vesta

    2019独角兽企业重金招聘Python工程师标准>>> 本文内容脑图如下: 文章共 760字,阅读大约需要 2分钟 ! 概 述 在前一篇文章 <Spring Boot工程集成全 ...

最新文章

  1. Flutter开发之路由跳转与传参(七)
  2. linux下挂载U盘过程
  3. Cvmat IplImage
  4. gdb调试android
  5. java的Comparator和Comparable
  6. 为什么超 80% 的开源开发者苦苦挣扎在贫困线?
  7. 中国建筑行业2020年度回顾及未来展望
  8. android 蓝牙headset,android – 如何通过反射使用BluetoothHeadset类
  9. python注册登陆程序未响应_SpringBoot实现登录注册常见问题解决方案
  10. 定时任务@Scheduled(cron = “* * * * * *?“) 表达式详解
  11. CentOS 8下 MySQL 8.0 安装部署(亲测)
  12. User Profile的名称和显示名称
  13. 链表的游标(cursor)实现
  14. EJB到底是什么,真的那么神秘吗??
  15. 西门子界面官方精美触摸屏+WINCC程序模板 西门子官方触摸屏程序模板
  16. 噬菌体基因组测序再添IF3.493好文
  17. Kotlin 开发Android app(十九):文件读写和SharedPreferences内容存储
  18. 猫和老鼠服务器未响应是怎么回事,猫和老鼠手游怎么玩不了?游戏设置及异常解决方法[多图]...
  19. 一种快速的幂运算方法(底数是自然数e,指数是浮点数)
  20. c++i/o系统 纯。

热门文章

  1. 贪心——Luogu2255 [USACO14JAN]记录奥林比克
  2. google翻译逆天了逆天了(搞笑版)
  3. Unity 游戏皇家消消乐Android版
  4. 阿里vod视频点播报错: com.aliyun.oss.common.utils.StringUtils
  5. 不要被“学会”的假象迷惑
  6. 无人机倾斜摄影技术在测绘领域的应用
  7. web页面查看dwg文件
  8. 什么是星空房?它有哪些特色?
  9. Android毕业项目计算机毕业论文及毕业设计题目基于Uniapp+SSM实现的记账app[包运行成功]
  10. Python学习笔记(二)Pytho解释器和程序开发、执行过程