maven pom filter 致使的問題記錄

 

Maven提供了一個很不錯的功能 Resource Filter, 能夠將按不一樣環境的進行變量賦值, 好比數據庫連接, redis, 日誌輸出位置等等.. 具體的filter如何使用我這裏不作介紹, 只是把一些問題記錄下來mysql

 

1. spring中使用的若是是 xxx.properties文件中的值, maven的filter會將這些值直接替換掉, 這是咱們不想看到的redis

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUrl" value="#{'${db.url}' == '' ? T(com.vip.fds.core.util.SystemEnvUtil).getDBUrl('MGMT') : '${db.url}'}" />
        <property name="user" value="#{'${db.user}' == '' ? T(com.vip.fds.core.util.SystemEnvUtil).getDBUsername('MGMT') : '${db.user}'}" />
        <property name="password" value="#{'${db.password}' == '' ? T(com.vip.fds.core.util.SystemEnvUtil).getDBPassword('MGMT') : '${db.password}'}" />
        <property name="idleConnectionTestPeriod" value="100" />
        <property name="preferredTestQuery" value="SELECT 1" />
        <property name="maxIdleTime" value="600" />
        <property name="acquireIncrement" value="2" /><!-- 當鏈接池裏面的連接用完的時候, c3p0一次性獲取的鏈接數 -->
        <property name="maxPoolSize" value="20" /><!-- 最大鏈接數 -->
        <property name="minPoolSize" value="2" /><!-- 最小鏈接數 -->
        <property name="testConnectionOnCheckin" value="true" />
        <property name="testConnectionOnCheckout" value="true" />
    </bean>

 

2. src/main/resources/ 目錄中有一些用於其餘目的的二進制文件, 好比就像qq的地址庫, 這些文件會被filter掃描到而且改變編碼格式, 你就會發現單元測試一些ok, 打成war包部署這個文件對應的解析功能就失敗spring

 

這時, exclude和include的功能就來了, 經過它, 你能夠定義目錄下的那些子目錄須要(不須要)進行filter替換, 這樣就能夠作到精確的控制sql

<build>
<filters>
            <filter>src/main/resources/filters/filter-${env}.properties</filter>
        </filters>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>spring/*</exclude>
                    <exclude>filters/*</exclude>
                    <exclude>*.dat</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>spring/*</include>
                    <include>*.dat</include>
                </includes>
            </resource>
        </resources>
</build
相關文章
相關標籤/搜索