1、首先先把配置文件从jar中抽离
示例代码:
1
2
3
4
5
6
7
8
9
10
|
<plugin>
<groupId>org.apache.maven.plugins< / groupId>
<artifactId>maven - jar - plugin< / artifactId>
<version> 3.2 . 0 < / version>
<configuration>
<excludes>
<exclude> * * / spring - xxx.xml< / exclude>
< / excludes>
< / configuration>
< / plugin>
|
2、把抽离的配置文件,放到conf目录下
利用maven-assembly-plugin,抽取配置文件到conf目录下,
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<plugin>
<groupId>org.apache.maven.plugins< / groupId>
<artifactId>maven - assembly - plugin< / artifactId>
<version> 3.3 . 0 < / version>
<configuration>
<descriptors>
<descriptor>src / main / assembly / assembly.xml< / descriptor>
< / descriptors>
< / configuration>
<executions>
<execution>
< id >make - assembly< / id >
<phase>package< / phase>
<goals>
<goal>single< / goal>
< / goals>
< / execution>
< / executions>
< / plugin>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
assembly.xml内容如下:
<assembly>
< id >assembly< / id >
<formats>
< format > zip < / format >
< format > dir < / format >
< / formats>
<includeBaseDirectory>false< / includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${basedir} / src / bin < / directory>
<outputDirectory> bin < / outputDirectory>
<fileMode> 0755 < / fileMode>
< / fileSet>
< / fileSets>
<files>
< file >
<source>${project.build.directory} / ${project.build.finalName}.jar< / source>
<outputDirectory>lib< / outputDirectory>
< / file >
< file >
<source>${basedir} / .. / xxx / target / classes / spring / spring - xxx.xml< / source>
<outputDirectory>conf< / outputDirectory>
< / file >
< file >
<source>${basedir} / .. / xxx / target / classes / spring / spring - xxx.xml< / source>
<outputDirectory>conf< / outputDirectory>
< / file >
< / files>
< / assembly>
|
最终效果如下:
3、修改maven打包配置将conf加入到classpath中
示例代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
<plugin>
<groupId>org.apache.maven.plugins< / groupId>
<artifactId>maven - jar - plugin< / artifactId>
<version> 3.2 . 0 < / version>
<configuration>
<archive>
<manifestEntries>
<Class - Path>.. / conf / < / Class - Path>
< / manifestEntries>
< / archive>
< / configuration>
< / plugin>
|
最终达到的效果是:
将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包启动,同时还可以为不同的机房设置不同的配置文件
作者:京东科技 李意文
来源:京东云开发者社区 转载请注明来源
本文含有隐藏内容,请 开通VIP 后查看