Maven項目打包時指定配置策略


以數據庫連接池的配置文件(db.properties)為例,一般的項目會有開發用數據庫,測試用數據庫,正式環境數據庫三種配置。

 

以前的做法是拷貝成三份,注釋掉其他了兩份

# 開發用
jdbc.url =jdbc:mysql://localhost:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
jdbc.username = root
jdbc.password = root

# 測試用
# jdbc.url =jdbc:mysql://111.111.111.111:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
# jdbc.username = root
# jdbc.password = a@#$

# 正式環境用
# jdbc.url =jdbc:mysql://112.121.211.222:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
# jdbc.username = root
# jdbc.password = asd123&*(

 

項目每次打包到不同的環境都需要,選擇正確的配置,取消它的注釋,並注釋掉另外兩套配置。

 

 

如果用到pom.xml中的profiles標簽,打包前的這些配置步驟就可以省略了。

 

1、首先在src/main/resources下建立environment文件夾,里面新建3個properties文件,代表上面提到的三種配置策略

db_dev.properties

env.jdbc.url =jdbc:mysql://localhost:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
env.jdbc.username = root
env.jdbc.password = root

 

db_test.properties

env.jdbc.url =jdbc:mysql://111.111.111.111:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
env.jdbc.username = root
env.jdbc.password = a@#$

 

db_prod.properties

env.jdbc.url =jdbc:mysql://112.121.211.222:3306/app_name?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true
env.jdbc.username = root
env.jdbc.password = asd123&*(

 

2、改變原有的db.properties中的內容

db.properties

jdbc.url=${env.jdbc.url}
jdbc.username=${env.jdbc.username}
jdbc.password=${env.jdbc.password}

 

3、在pom.xml中追加profiles標簽

<profiles>
        <profile>
            <id>dev</id>
            <activation>
                <!-- 代表默認配置是dev -->
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <filters>
                    <filter>src/main/resources/environment/db_dev.properties</filter>
                </filters>
            </build>
        </profile>
        <profile>
            <id>prod</id>
            <build>
                <filters>
                    <filter>src/main/resources/environment/db_prod.properties</filter>
                </filters>
            </build>
        </profile>
        <profile>
            <id>test</id>
            <build>
                <filters>
                    <filter>src/main/resources/environment/db_test.properties</filter>
                </filters>
            </build>
        </profile>
    </profiles>

 

4、pom.xml的resources標簽中追加對environment的配置。由於environment文件夾只作為“配置倉庫”用,所以它不需要參與編譯

            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>environment/*</exclude>
                </excludes>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>

 

5、打包命令

 

給開發環境打包(用到得很少,一般都是直接jetty:run來調試)

mvn clean install -Dmaven.test.skip=true -Pdev

 

給測試環境打包

mvn clean install -Dmaven.test.skip=true -Ptest

 

給正式環境打包

mvn clean install -Dmaven.test.skip=true -Pprod

 


免責聲明!

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



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