使用maven profile指定配置文件打包適用多環(huán)境的方法
開發(fā)過程, 我們習慣把數據源配置, 項目常量, 日志配置等基礎數據配置寫到一個個單獨的的文件中. 如jdbc.properties等各種.格式的文件.
如何不頻繁修改配置文件, 隨時打包不同基礎數據配置信息的項目.
1.新建maven項目, 在pom.xml中添加 profile節(jié)點信息如下:
<profiles> <profile> <!-- 開發(fā)環(huán)境 --> <id>dev</id> <properties> <environment>development</environment><!-- 節(jié)點名字environment是自己隨意取的 --> </properties> <activation> <activeByDefault>true</activeByDefault><!-- 默認激活該profile節(jié)點--> </activation> </profile> <profile> <!-- 測試環(huán)境 --> <id>test</id> <properties> <environment>test</environment> </properties> </profile> <profile> <!-- 預演環(huán)境 --> <id>prev</id> <properties> <environment>preview</environment> </properties> </profile> <profile> <!-- 生產環(huán)境 --> <id>prod</id> <properties> <environment>production</environment> </properties> </profile> </profiles>
2. 在項目中添加各環(huán)境需要的數據源配置文件,分不同目錄存放, 分別是開發(fā),測試, 預演,生產 環(huán)境. 如下圖左邊部分所示.
3. pom.xml中配置resource節(jié)點信息.
<build> <resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>environment/development/*</exclude> <exclude>environment/test/*</exclude> <exclude>environment/preview/*</exclude> <exclude>environment/production/**</exclude> </excludes> </resource> <resource> <directory>src/main/resources/environment/${environment}</directory> <targetPath>environment/${environment}</targetPath> </resource> </resources> </build>
resource節(jié)點信息解釋:
<directory>src/main/resources</directory> <!--打包時包含src/main/resources目錄下所有"子"文件 和 "孫"文件.如config 和environment --> <exclude>environment/development/**</exclude> <!--打包時排除src/main/resources/environment/development下所有"子"文件 和 "孫"文件.--> <exclude>environment/test/**</exclude> <!--打包時排除src/main/resources/environment/test下所有"子"文件 和 "孫"文件.--> <exclude>environment/preview/**</exclude> <!--打包時排除src/main/resources/environment/preview下所有"子"文件 和 "孫"文件.--> <exclude>environment/production/**</exclude><!--打包時排除src/main/resources/environment/production下所有"子"文件 和 "孫"文件.--> <!-- 注意點: 如果寫一個心號*, 如<exclude>environment/development/*</exclude> 則表示:打包時排除src/main/resources/environment/development下所有"子"文件, 不排除"孫"文件, 如上一個截圖所示.--> <!-- 以上配置優(yōu)先度從上到下 遞增, 這就達到目的: config目錄下的配置各環(huán)境都需要, 而其它環(huán)境相關的配置只會有一個目錄被打包--->
<directory>src/main/resources/environment/${environment}</directory> <!-- 打包時包含src/main/resources/environment/${environment}下所有"子"文件,environment變量值來自profile中賦值 --> <targetPath>environment/${environment}</targetPath><!--指定src/main/resources/environment/${environment}所有"子文件" 打包 到包的哪個目錄 -->
4. 項目打包. 打包命令mvn package -Pdev來指定激活id為 dev 的profile節(jié)點, 這樣, 開發(fā)環(huán)境配置文件就會被打包.
開發(fā): mvn package -Pdev (因為配置了默認激活dev部分, 所以也可以使用mvn package, 這與 mvn package -Pdev 效果相同)
測試: mvn package -Ptest
預演:mvn package -Pprev
生產:mvn package -Pprod
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
java8 利用reduce實現將列表中的多個元素的屬性求和并返回操作
這篇文章主要介紹了java8 利用reduce實現將列表中的多個元素的屬性求和并返回操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08阿里通用OCR文字識別/圖像識別/圖片識別對接代碼示例(Java篇)
這篇文章主要介紹了阿里通用OCR文字識別/圖像識別/圖片識別對接(Java篇)的相關資料,文中詳細介紹了包括開通服務、測試圖片、編寫識別代碼、處理識別結果等步驟,需要的朋友可以參考下2024-12-12PowerJobAutoConfiguration自動配置源碼流程解析
這篇文章主要為大家介紹了PowerJobAutoConfiguration自動配置源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12SpringBoot + FFmpeg實現一個簡單的M3U8切片轉碼系統(tǒng)
使用大名鼎鼎的ffmpeg,把視頻文件切片成m3u8,并且通過springboot,可以實現在線的點播。2021-05-05