一失暴、浩言
如果你是對的,你沒必要發(fā)脾氣灾炭;如果你是錯的,你沒資格發(fā)脾氣---這才是真正的智慧
二消痛、背景
原本的注冊接口本身沒問題的,但是我上次改了pom文件之后,測試就發(fā)現(xiàn)注冊失敗了,關(guān)鍵就是單純的最后一次插入失敗,因此就老老實(shí)實(shí)的去找bug了,日志也打印了把沼,但是插入的時(shí)候version就是變?yōu)榱?0.0.1-SNAPSHOT',其實(shí)這個(gè)值實(shí)很敏感的,因?yàn)閙aven的版本號就是這樣,所以我就把maven的版本號改了,結(jié)果果然,這里插入的數(shù)據(jù)又變?yōu)樾碌膍aven版本號,我勒個(gè)去的,這就郁悶了,但是我前面一個(gè)插入也有version的斑斑號插入的,結(jié)果檢查一發(fā)現(xiàn),xml里面是寫固定了,好吧,繼續(xù)后面這個(gè)插入的說,我記得我也沒改什么,就是改了資源過濾啊易,根據(jù)不同的參數(shù)得到不同的配置文件而已,問題從這入手。
三饮睬、問題所在
所以我把maven打完包后租谈,進(jìn)入打包文件中查看xml,看到如下圖的結(jié)果,打包的時(shí)候后version已經(jīng)被替換了续捂。所以<a herf="http://www.reibang.com/p/7d383a5e8240">maven工具不同環(huán)境打包加載屬性方式</a>中介紹了另外一個(gè)獲取屬性的方法就是${version}的方式來獲取數(shù)據(jù)的垦垂。因?yàn)槲以趐om.xml里面制定了過濾的目錄是resource下面文件,因?yàn)槲业膞ml放在mapper下面牙瓢,所以就被替換了劫拗,配置如下
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
......
<profiles>
<profile>
<id>test</id>
<properties>
<package.environment>test</package.environment>
</properties>
</profile>
<profile>
<id>production</id>
<properties>
<package.environment>production</package.environment>
</properties>
</profile>
<profile>
<id>development</id>
<properties>
<package.environment>development</package.environment>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
<build>
<resources>
<!-- <resource>
<directory>src/main/resources/config</directory>
<excludes>
<exclude>test/**</exclude>
<exclude>production/**</exclude>
<exclude>development/**</exclude>
</excludes>
<filtering>true</filtering>
</resource> -->
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>config/test/**</exclude>
<exclude>config/production/**</exclude>
<exclude>config/development/**</exclude>
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/config/${package.environment}</directory>
</resource>
</resources>
報(bào)錯如下:
四、思考
那么上面說了是我指定目錄問題矾克,那么如果我指定的目錄是src/main/resources/config下的页慷,就是上面注釋的代碼,過濾后的文件就只用我的test or production or development文件的東西,這樣我這個(gè)目錄下的文件我都得使用include進(jìn)行包含操作。也是很麻煩胁附。所以我改了xml里面的獲取數(shù)據(jù)方式#{version}
所以這是一次巧合中的巧合酒繁,第一個(gè)巧合是我修改了打包的方式,根據(jù)不同參數(shù)打包不同配置文件,再巧合的是我的代碼里面的參數(shù)竟然會被maven里的屬性進(jìn)行覆蓋控妻,這有獲取值的方式問題州袒,也有巧合問題了。所以工具用的同時(shí)也要注意問題弓候。
五:浩語
__
__ _ ____ __| |__ _____ ___
\ \/ \/ / | \ | \\__ \ / _ \
\ /| | / Y \/ __ \( <_> )
\/\_/ |____/|___| (____ /\____/
\/ \/
任何事情都是要靠努力和用心郎哭。