springboot 如何用 jar 包启动,同时为不同机房设置不同的配置文件 | 京东云技术团队

1、首先先把配置文件从jar中抽离

示例代码:

1<plugin> 2 <groupId>org.apache.maven.plugins</groupId> 3 <artifactId>maven-jar-plugin</artifactId> 4 <version>3.2.0</version> 5 <configuration> 6 <excludes> 7 <exclude>**/spring-xxx.xml</exclude> 8 </excludes> 9 </configuration> 10</plugin> 11 12

2、把抽离的配置文件,放到conf目录下

利用maven-assembly-plugin,抽取配置文件到conf目录下,

示例代码:

1<plugin> 2 <groupId>org.apache.maven.plugins</groupId> 3 <artifactId>maven-assembly-plugin</artifactId> 4 <version>3.3.0</version> 5 <configuration> 6 <descriptors> 7 <descriptor>src/main/assembly/assembly.xml</descriptor> 8 </descriptors> 9 </configuration> 10 <executions> 11 <execution> 12 <id>make-assembly</id> 13 <phase>package</phase> 14 <goals> 15 <goal>single</goal> 16 </goals> 17 </execution> 18 </executions> 19</plugin> 20 21
1assembly.xml内容如下: 2<assembly> 3 <id>assembly</id> 4 <formats> 5 <format>zip</format> 6 <format>dir</format> 7 </formats> 8 <includeBaseDirectory>false</includeBaseDirectory> 9 <fileSets> 10 <fileSet> 11 <directory>${basedir}/src/bin</directory> 12 <outputDirectory>bin</outputDirectory> 13 <fileMode>0755</fileMode> 14 </fileSet> 15 </fileSets> 16 <files> 17 <file> 18 <source>${project.build.directory}/${project.build.finalName}.jar</source> 19 <outputDirectory>lib</outputDirectory> 20 </file> 21 <file> 22 <source>${basedir}/../xxx/target/classes/spring/spring-xxx.xml</source> 23 <outputDirectory>conf</outputDirectory> 24 </file> 25 <file> 26 <source>${basedir}/../xxx/target/classes/spring/spring-xxx.xml</source> 27 <outputDirectory>conf</outputDirectory> 28 </file> 29 </files> 30 31</assembly> 32 33

最终效果如下:

3、修改maven打包配置将conf加入到classpath中

示例代码如下:

1 <plugin> 2 <groupId>org.apache.maven.plugins</groupId> 3 <artifactId>maven-jar-plugin</artifactId> 4 <version>3.2.0</version> 5 <configuration> 6 <archive> 7 <manifestEntries> 8 <Class-Path>../conf/</Class-Path> 9 </manifestEntries> 10 </archive> 11 </configuration> 12 </plugin> 13 14

最终达到的效果是:

将springboot的jar包解压后,可以看到.MF文件中加了一个类路径 ../conf

特别注意:

java -jar XX

使用-jar启动java进程的,-classpath不会生效了,如果要加类路径,只能通过改maven的打包参数,从而使得.MF文件加了Class-Path属性后,才可以!!!!

4、到部署平台上新建conf文件夹,将要覆盖的配置文件加入进去

这样,部署平台的配置就会覆盖maven打包出来的配置文件

5、测试是否生效

在部署平台上,将部署平台上的配置文件里的,rpc框架的服务别名设置为:xxx

代码里的服务别名是yyy,然后通过测试发现生效的别名是xxx。

因为,springboot启动后,使用的是conf下配置文件,然后conf下的配置文件会被部署平台上新建的配置文件覆盖,

这样为不同的机房新建不同的配置文件,这样也就实现了springboot的项目如何既要用jar包启动,同时还可以为不同的机房设置不同的配置文件

作者:京东科技 李意文

来源:京东云开发者社区 转载请注明来源

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

springboot读取外部配置文件

springboot项目打成jar包后不好进行配置文件修改,可设置为读取外部配置文件,方便进行配置修改.步骤:1.将jar包中的application.properties配置文件复制到自定义路径下;2.运行jar包命令指定外部配置文件路径:nohupjavajar.jarspring.config.location

springboot服务优雅关机脚本

阅读文本大概需要3分钟。自从使用springboot开发项目后,服务很多时候都是打成jar包,然后通过javajarxx.jar的方式来启动程序的。比如下面这个脚本就是启动payserver的脚本,加载prd配置文件,启动后在后台运行,将日志写在jar包目录下的pafa.log 里!/bin/bash eja

FastDFS图片服务器实现图片上传

一、传统使用1.将fastdfs\_client.jar导入工程2.加载配置文件(如conf.properties),配置文件中的内容就是tracker服务的地址。配置文件内容:tracker\_server192.168.25.133:221223.把commonsio、fileupload的jar包添加到工程中4.页面代码!