1. 程式人生 > >[Maven] resource配製include與exclude的關係

[Maven] resource配製include與exclude的關係

在Maven中,使用resource我們可以在部署的過程中對配置檔案做一些處理。

比如使用include、exclude。

那這篇文章主要介紹一下include、exclude的作用與區別。

  • include
include的作用:

使用include可以規定指定路徑下的xml包括properties檔案在編譯期,將文

件指定的${key}替換掉。

例如:XXX.xml中我們使用${jdbc.url}來代表資料庫地址。那麼在Maven編譯時,就會將${jdbc.url}替換成真正的地址。

注:類似上面${jdbc.url}這樣的key必須是pom.xml中的屬性定義到的

  • exclude
exclude的作用:

使用exclude可以規定指定路徑下的配置檔案,在編譯後打包時不被放入資源路徑裡。
注:
    如果<include><exclude>劃定的範圍存在衝突時
    並不會執行<exclude>,而是執行<include>

下面是使用resources的形式

<build>
    <resources>
        <resource>
            ...
        </resource>

        <resource>
            ...
</resource> </resources> <build>

include的使用示例

        <resource>
            <directory>src/main/resources</directory>
            <!-- 過濾指定路徑下的配置檔案屬性 -->
            <includes>
                <!-- 
                    注:
                        1、include可以配置多個路徑,但路徑不要重複,也別包含
                        2、*與**/*意義不同,*指resource路徑下,並不包含resource子資料夾下的檔案
                           **/*指resource路徑及其子路徑下所有檔案。
                -->
<!-- <include>*</include> <include>**/*</include> <include>*.xml</include> <include>**/*.xml</include> <include>test1.xml</include> <include>test2.xml</include> --> <include>test1.xml</include> </includes> <!-- true:替換 false:不替換 --> <filtering>true</filtering> </resource>

exclude的使用示例

        <resource>
            <directory>src/main/resources</directory>
            <!-- 
                不過濾指定路徑下的檔案:此路徑下的指定檔案打包時,
                                           將不被放入resource中。
            -->         
            <excludes>
                <exclude>test2.xml</exclude>
                <!-- 
                    注:
                        exclude的注意事項與include相同
                -->
                <!-- 
                    <exclude>*</exclude>
                    <exclude>**/*</exclude>
                    <exclude>*.xml</exclude>
                    <exclude>**/*.xml</exclude>
                    <exclude>test1.xml</exclude>
                    <exclude>test2.xml</exclude>
                 -->
            </excludes>
            <filtering>false</filtering>
        </resource>

注:exclude裡filtering的true、false值詳解。

            <!--

                true與false相同點:

                    exclude規定路徑下的檔案不被打包。

                true與false不同點:

                    true: 不在exclude規定路徑下,其他的檔案執行include過濾。

                    false:不在exclude規定路徑下,其他的檔案不執行include過濾。
            -->