maven 替換指定文件屬性值

maven 替換指定文件屬性值

問題由來

接到一個需求:組裝 http 協議的時候在 header 裏面帶上 User-agent , 但是 agent 裏面需要動態獲取當前操作系統、系統架構、當前項目版本和名稱。本着最少維護成本的想法,否定了手動維護靜態變量的選擇,所以只能選擇通過現有的技術自動化解決問題。

實現步驟

  1. 在項目的 resources 目錄下創建 xx.properties 文件(也可以在自己喜歡的目錄創建,不過稍後讀取的時候會比較麻煩,所以建議是在 resources 下面創建),填寫以下信息

    project.version=${project.version}
    project.name=${project.name}
    

    看名字就知道他們是什麼意思了就不解釋了

  2. 在 pom 文件的 build 標籤裏填入相應信息

    <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>xx.properties</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>
    </build>      
    

    directory:指定需要替換的文件目錄
    include:指定需要替換的文件(可以使用*.*來通配)
    filtering:true 開啓替換

  3. 最後就是在代碼裏面讀取配置

    Properties props = System.getProperties();
    props.load(ClassLoader.getSystemResourceAsStream("xx.properties"));
    String name = props.getProperty("project.name");
    String version = props.getProperty("project.version")
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章