SpringBoot項目通過Maven打包時相關參數的設置

首先,在正式項目放到生產環境中時,可能會有相關需求,就是將部分配置文件不打包到項目的啓動jar包中,方便運維同事修改配置文件中的一些敏感配置,比如數據庫連接,數據庫用戶名密碼等。這裏我們首先要來說下SpringBoot項目在加載配置文件時,讀取配置文件的優先級順序。是先搜索可執行jar包同級目錄下是否存在application.yml(或者application.properties)文件,再搜索jar內部路徑中的application.yml(或者application.properties)文件。(具體在下一篇博客中闡述加載配置的相關原理)所以,要實現以上需求,可直接通過maven打包的配置來控制是否將配置文件打包進可執行jar包中。

先來看看我的項目的配置的具體目錄結構:

 我想將除yml文件以外的其他配置項在打包時保留在可執行jar包中,可以進行如下配置:

 <build>
        <finalName>iaa-party-service</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>mapper/**</include>
                    <include>log4j.properties</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
</build>

各個標籤說明:

  1.  <finalName>標籤:此標籤是對項目打包後的jar包的名稱進行定義,如圖中所示,通過maven打包出來的jar包爲iaa-party-service.jar;
  2. <resources>標籤:該標籤內是定義打包項目中的一些文件的設置(文件路徑集合);
  3. <resource>標籤:具體的某個源路徑中的內容
  4. <directory>標籤:是指定處理的文件夾路徑,上圖中就表示需要處理的路徑爲項目的resources目錄;
  5. <includes>標籤:指定打包時在對應目錄下的對應內容(集合)。
  6. <include>標籤:指定具體打包進jar包中的內容,上圖所示表示,將resources目錄下的mapper目錄中的所有文件,以及log4j.properties文件打包進可執行jar包中;

執行package命令後,打包好的jar包,通過反編譯軟件反編譯後可看到jar包中的內容

這樣就很方便的達到我們將一些重要的配置文件內容提取出來的需求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章