作者:京東科技 李意文
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內容如下: 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?>
?
最終達到的效果是:
將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包啟動,同時還可以為不同的機房設置不同的配置文件
審核編輯 黃宇
-
機房
+關注
關注
0文章
487瀏覽量
17453 -
SpringBoot
+關注
關注
0文章
175瀏覽量
316
發布評論請先 登錄
評論