导语
  在小公司使用Spring Boot部署上线,因为环境太多,导致运维开发相互之间重复的打包jar包运行到不同的环境上,使用容器技术又显得有点浪费,所以就先将配置文件打包的jar包外面。然后运维同学就可以自己手动修改配置文件,而不需要每次都重新打包jar。

首先创建一个项目

  创建项目,项目结构如下,编写一个Controller的测试类

编写测试类

@RestController
public class TestController {@GetMapping("test")public String test(){return "hello world";}
}

修改配置文件

server:port: 4567

启动项目测试对应数据

  测试项目启动之后会发现使用的本地配置的4567端口启动

打包项目

修改POM配置

  修改配置文件将原来的build中的内容替换为下面内容

    <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/app/lib</outputDirectory><!-- 是否不包含间接依赖 --><excludeTransitive>false</excludeTransitive><!-- 忽略版本 --><stripVersion>false</stripVersion></configuration></execution></executions></plugin><!-- maven资源文件复制插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.7</version><executions><execution><id>copy-config</id><phase>package</phase><goals><goal>copy-resources</goal></goals><configuration><outputDirectory>${project.build.directory}/app/config</outputDirectory><resources><resource><directory>src/main/resources</directory><includes><exclude>**/*.xml</exclude><exclude>**/*.conf</exclude><exclude>**/*.properties</exclude><exclude>**/*.yml</exclude></includes><filtering>true</filtering></resource></resources><encoding>UTF-8</encoding></configuration></execution></executions></plugin><!-- 可执行jar插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.1.0</version><configuration><outputDirectory>${project.build.directory}/app/bin</outputDirectory><!--这些配置将写入到MANIFEST.MF文件中--><archive><!--指定程序入口--><manifest><addClasspath>true</addClasspath><classpathPrefix>../lib/</classpathPrefix><mainClass>com.example.pk.PkApplication</mainClass></manifest><!-- (配置文件外置目录) --><manifestEntries><Class-Path>../config/</Class-Path></manifestEntries></archive><excludes><exclude>**/*.xml</exclude><exclude>**/*.conf</exclude><exclude>**/*.yml</exclude><exclude>**/*.properties</exclude><exclude>**/*/*.json</exclude></excludes></configuration></plugin></plugins></build>

点击package打包项目

  点击打包按钮之后项目在target目录中的内容发生变化。在app包中有bin、config、lib三个目录中分别放的就是依赖文件

修改配置运行打包文件

Spring Boot+Maven将配置文件打包到Jar包外方便运维修改配置相关推荐

  1. Spring Boot Maven聚合工程 打包部署教程

    Spring Boot 给聚合工程 打包部署,这里打jar包进行部署,首先等保证父子工程能正常运行,依赖都能加载,不会造成maven之间循环依赖等问题,如图 从上面的图来看,就会发生循环依赖的问题,这 ...

  2. Spring Boot——Maven使用SystemPath引用本地jar:ClassNotFoundException

    问题描述 <dependency><groupId>com.dingtalk</groupId><artifactId>dingtalk-api-sdk ...

  3. 把Spring Boot项目打为可执行jar包

    前言 这两天没太多事了,就去学了一下后端的内容,发现只要有基础了,学其他的还是挺快的. 本篇解决的是SpringBoot打成可执行的jar包,在网上找别人直接用命令,可是我这边显示错误,于是就自己查了 ...

  4. linux上jar包无法识别本地文件格式,解决使用maven将项目打包成jar包后运行在linux系统中无法读取jar包中文件的问题...

    哈哈,之前计划的每周至少更新一个博客的计划又因为各种原因都泡汤了.看来坚持真得是一件挺让人头疼的问题,无论如何,从这周开始接下来每周一定要至少更新一个技术博客,欢迎大家监督! 好,言归正传.之前前几周 ...

  5. maven学习系列8----将resources目录下的文件打包到jar包外

    maven默认情况下会把src/main/resources下的文件和class文件一起打到jar包内部,但是有很多场景下都需要把resources下的文件打包到jar包外面,这样修改resource ...

  6. Spring boot 集成ip2region.xdb,在jar包中的使用

    依赖 <dependency><groupId>org.lionsoul</groupId><artifactId>ip2region</arti ...

  7. maven springboot 除去指定的jar包_Spring Boot打包瘦身 Docker 使用全过程 动态配置、日志记录配置...

    springBoot打包的时候代码和jar包打包在同一个jar包里面,会导致jar包非常庞大,在不能连接内网的时候调试代码,每次只改动了java代码就需要把所有的jar包一起上传,导致传输文件浪费了很 ...

  8. maven springboot 除去指定的jar包_1. Spring Boot概述

    1.1 Spring Boot理解 Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用 背景 J2EE笨重的开发.繁多的配置. ...

  9. Spring Boot Gradle 瘦身打包 thinJar,分离 lib jar 依赖

    原文地址:weiku.co/article/135/ ,欢迎转载 需求背景: srping boot 2.0+ 打包生产的 fat jar 虽然部署起来很方便,但将所有依赖都打包到一个 jar 包中使 ...

最新文章

  1. MapReduce基础开发之九JDBC连接Hive
  2. 【解答】一个电动模型,每一组电池能让其行驶8分钟,一个充电器能同时给两组电池充电,一组充满需要15分钟,至少准备(?)组电池,(?)个充电器,可以让模型每次行驶完可以立即换电池行驶不用等待。
  3. DCMTK:dcmseg模块的辅助功能
  4. 敏捷项目管理流程-Scrum框架最全总结
  5. 学习笔记--asp.net主题和外观(转自msdn,仅为自己学习存储和有意读者使用)
  6. [源码]天骄天下个人网站系统(三个月倾情打造)
  7. hibernate4.0+版本和3.0+版本的区别总结
  8. Atitit 理财之道 attilax著 1. 融资 3 1.1. 融资账户余渠道 3 2. 风控 3 3. 3 4. 投资 3 5. 线上财富与资源 3 5.1. Jd流量 飞猪流量 3 5.
  9. mysql execute 存储过程_Mysql存储过程调用
  10. 《高等代数学》(姚慕生),复习题一,第1题
  11. ITIL学习笔记——核心流程之:变更管理
  12. 基于Matlab与Logistic Regression(逻辑回归)的瓶子密封性检测
  13. python制作ppt动画_卧槽,还能这么玩!用Python生成动态PPT
  14. Oracle安装时先决条件检查失败
  15. 谈VI设计的审美情趣
  16. 关于pycharm中html在页面访问的记录(授权问题)
  17. python怎么绘制图例_使用正确的标签python绘制图例
  18. JVM是怎么和操作系统交互的?
  19. matlab如何循时将上一次运行出的结果带入下一次的运算,关于怎么把 for的上一次计算结果代入下一次循环的初始值问题...
  20. sourcetree拉取LFS

热门文章

  1. php 单例模式 构函数,PHP设计模式——单例模式(Singleton Pattern)
  2. 服务器红帽操作系统安装,pxe无人值守安装 红帽操作系统
  3. Shell命令-系统信息及显示之dmesg、uptime
  4. 什么样的网站建设公司才是值得信赖的?
  5. 走近伏羲,谈5000节点集群调度与性能优化
  6. VMware中的三种网络模式-----Host-only模式
  7. (转)B2B2C,从营销的角度,来理解SaaS
  8. QTP工作原理的学习心得
  9. JSP学习笔记(六十二):struts2中的Lambda表达式
  10. 实验十 团队作业6:团队项目系统设计改进与详细设计