Maven之打包時配置文件替換


在JavaWeb項目中,使用maven打包。在打正式包時,需要手動修改數據庫配置為線上環境的地址,這樣每次修改起來比較麻煩。

搜索了一些資料后,大部分的做法或原理都是預先使用表達式占位符,然后在打包時動態替換。

但這種做法無法滿足我直接在開發環境(Eclipse+Tomcat)里面直接測試,因為配置文件里面的值是表達式而不是真正的值。所以綜合一些資料有個以下解決辦法。

  1. 正常配置的數據庫配置為測試環境的地址
  2. maven打包時動態替換配置文件

項目結構圖如下

具體實現

  • 在開發環境中測試時使用圖中測試的數據庫配置
  • maven打包時利用ant插件,使用classpath:product/jdbc.properties替換classpath:jdbc.properties,具體做法是在pom.xml中做如下配置
    <profiles>
        <profile>
            <id>prod</id> <!--指定ID-->
            <build>
                <plugins>
                    <plugin>
                    <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.8</version>
                        <executions>
                            <execution>
                                <phase>compile</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <tasks>
                                        <!-- 替換jdbc.properties-->
                                        <copy file="${basedir}/src/main/resources/product/jdbc.properties" tofile="${basedir}/target/classes/jdbc.properties" overwrite="true"/>
                                        <delete dir="${basedir}/target/classes/product"/>
                                    </tasks>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
  • 打包時指定profile,打包命令為: mvn clean package -P prod

總結

這種的做法同樣也可以替換其他相關配置,比如log4j相關的配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM