天天看點

pom.xml之profiles

1、profiles是什麼?有什麼作用

在maven建構的項目都存在一個pom.xml的項目對象模型配置檔案,用于限制項目(如:jar包管理、建構管理等)。profiles是pom.xml中的一個配置項。

我們在開發項目時一般都會區分線上環境和測試環境,這兩個環境需要切換以适應不同的環境需求

pom.xml之profiles

正式環境的配置,一般放置于src/main/resources下,而測試環境放置于/src/test/resources下面。

profile的主要作用就是區分正式環境和測試環境的配置

2、如何配置

<profiles>
    <profile>
        <id>release</id>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </resource>
            </resources>
        </build>
    </profile>
    
    <profile>
        <id>test</id>
        <build>
            <resources>
                <resource>
                    <directory>src/test/resources</directory>
                    <includes>
                        <include>config/*.properties</include>
                        <include>log4j.xml</include>
                    </includes>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                    <excludes>
                        <exclude>log4j.xml</exclude>
                    </excludes>
                </resource>
            </resources>
        </build>
           
<activation>
                <activeByDefault>true</activeByDefault>
           </activation>
    </profile>
</profiles>
           

如上, 我配置了兩個profile一個release用于正式環境釋出,test用于測試環境使用;預設開啟測試環境,activation-><activeByDefault>true</activeByDefault>

測試環境與正式環境隻是部分的配置不同,我們需要公用這部配置設定置。這就使用到了includes and excludes,用引入和排除配置檔案

3、差別建構釋出包

建構測試包: maven package -P test -Dmaven.test.skip=true

建構正式包:maven package -P release -Dmaven.test.skip=true