java的密鑰庫jks檔案放在/src/main/resources目錄下,到了編譯的時候,就會自動成長變大,導致java讀取keystore檔案異常,爆出
java.io.IOException:Invalid keystore format ...
的異常.
這個問題困擾了很久,在以前的項目中就出現過一次,當時由於項目很緊急,就把jks檔案放在了/src/main/java目錄下,這樣就不會變化了.當時就覺得很邪門,見鬼了
今天又出現了一次,這次我早把上次的解決方案忘得一乾二淨,上網google了半天,最後從
http://stackoverflow.com/questions/19500458/maven-resource-binary-changes-file-size-after-build
和
http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html
找到了原因,是maven管理的/src/main/resources目錄下,會把檔案裡面的預留位置替換,不知道jks檔案裡面是不是也有很多這樣的字元,反正是這個影響的,
解決方案就是要在pom.xml檔案中加入禁止maven擅作主張修改資源檔的限制
[html] view plain copy <build> <resources> <resource> <!-- 防止JKS被maven錯誤解析 --> <directory>src/main/resources</directory> <filtering>false</filtering> </resource> </resources> </build>
重新clean過後就可以了
後面的一些時候,發現上面配置有些時候也沒有用,不知道是環境問題還是怎麼的,後來又google到一個方法
http://stackoverflow.com/questions/19500458/maven-resource-binary-changes-file-size-after-build
<build> ... <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <nonFilteredFileExtensions> <nonFilteredFileExtension>p12</nonFilteredFileExtension>
<nonFilteredFileExtension>jks</nonFilteredFileExtension>
</nonFilteredFileExtensions> </configuration> </plugin> </plugins></build>
這個p12是尾碼的意思,不想讓他去修改什麼檔案,就在這裡面添加條目即可