作者:京東科技 李意文
1、首先先把配置文件從jar中抽離
示例代碼:
org.apache.maven.plugins/groupId?>
maven-jar-plugin/artifactId?>
3.2.0/version?>
**/spring-xxx.xml/exclude?>
/excludes?>
/configuration?>
/plugin?>
2、把抽離的配置文件,放到conf目錄下
利用maven-assembly-plugin,抽取配置文件到conf目錄下,
示例代碼:
org.apache.maven.plugins/groupId?>
maven-assembly-plugin/artifactId?>
3.3.0/version?>
src/main/assembly/assembly.xml/descriptor?>
/descriptors?>
/configuration?>
make-assembly/id?>
package/phase?>
single/goal?>
/goals?>
/execution?>
/executions?>
/plugin?>
?
assembly.xml內(nèi)容如下:
assembly/id?>
zip/format?>
dir/format?>
/formats?>
false/includeBaseDirectory?>
${basedir}/src/bin/directory?>
bin/outputDirectory?>
0755/fileMode?>
/fileSet?>
/fileSets?>
${project.build.directory}/${project.build.finalName}.jar/source?>
lib/outputDirectory?>
/file?>
${basedir}/../xxx/target/classes/spring/spring-xxx.xml/source?>
conf/outputDirectory?>
/file?>
${basedir}/../xxx/target/classes/spring/spring-xxx.xml/source?>
conf/outputDirectory?>
/file?>
/files?>
/assembly?>
最終效果如下:

3、修改maven打包配置將conf加入到classpath中
示例代碼如下:
?
org.apache.maven.plugins/groupId?>
maven-jar-plugin/artifactId?>
3.2.0/version?>
../conf//Class-Path?>
/manifestEntries?>
/archive?>
/configuration?>
/plugin?>
?
最終達(dá)到的效果是:
將springboot的jar包解壓后,可以看到.MF文件中加了一個(gè)類路徑 ../conf

特別注意:
java -jar XX
使用-jar啟動(dòng)java進(jìn)程的,-classpath不會(huì)生效了,如果要加類路徑,只能通過(guò)改maven的打包參數(shù),從而使得.MF文件加了Class-Path屬性后,才可以?。。?!
?
4、到部署平臺(tái)上新建conf文件夾,將要覆蓋的配置文件加入進(jìn)去
這樣,部署平臺(tái)的配置就會(huì)覆蓋maven打包出來(lái)的配置文件
?
5、測(cè)試是否生效
在部署平臺(tái)上,將部署平臺(tái)上的配置文件里的,rpc框架的服務(wù)別名設(shè)置為:xxx
代碼里的服務(wù)別名是yyy,然后通過(guò)測(cè)試發(fā)現(xiàn)生效的別名是xxx。
?
因?yàn)椋瑂pringboot啟動(dòng)后,使用的是conf下配置文件,然后conf下的配置文件會(huì)被部署平臺(tái)上新建的配置文件覆蓋,
這樣為不同的機(jī)房新建不同的配置文件,這樣也就實(shí)現(xiàn)了springboot的項(xiàng)目如何既要用jar包啟動(dòng),同時(shí)還可以為不同的機(jī)房設(shè)置不同的配置文件
審核編輯 黃宇
-
機(jī)房
+關(guān)注
關(guān)注
0文章
519瀏覽量
18084 -
SpringBoot
+關(guān)注
關(guān)注
0文章
177瀏覽量
684
發(fā)布評(píng)論請(qǐng)先 登錄
請(qǐng)問(wèn)如何打jar包和運(yùn)行jar包?
JAR文件包及jar命令詳解
幾種Linux下后臺(tái)啟動(dòng)jar包的方法介紹
SpringBoot配置嵌入式Servlet
開(kāi)卡配置文件設(shè)置工具,sss量產(chǎn)INI文件設(shè)置工具
jar與war之間不得不說(shuō)的事
SpringBoot配置文件application
SpringBoot部署打包成jar和war有什么不同呢?
有哪些方法可以讀取Springboot的配置呢?
springboot的項(xiàng)目如何既要用jar包啟動(dòng),同時(shí)還可以為不同的機(jī)房設(shè)置不同的配置文件
評(píng)論