某個項目Jenkins打包後生成的war包裏沒有class文件,並且沒有任何報錯或者警告,打包也提示成功。
歷經各種折騰,偶然發現某個依賴的jar包在倉庫裏沒有對應的pom.xml文件。但是maven沒有報任何錯誤或者警告,導致一直沒有發現。至於爲何該依賴沒有pom.xml文件,還不清楚原因。
一般情況下,比如我們依賴的commons-dbcp,倉庫中包括的文件如下:
但是依賴的某個jar包,在maven倉庫裏包括的文件缺少了pom.xml。
後來將maven-compiler-plugin升級,可以看到在編譯時maven報錯,不過最終還是打包成功。雖然打包成功,但是裏面沒有classes文件。
將依賴的jar包升級後重新deploy,項目裏的依賴也相應升級。並且將maven-compiler-plugin版本升級到最新,防止再次出現這種問題時看不到maven報錯。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>