專門做任務(wù)的網(wǎng)站嗎怎樣創(chuàng)建網(wǎng)站平臺
高版本的 lombok 和 tomcat 7 插件沖突問題
在開發(fā)期間,當(dāng)我們使用 tomcat7-maven-plugin 來作為運(yùn)行環(huán)境運(yùn)行我們項目使,如果我們項目中使用了 1.16.20 及以上版本的 lombok 包,項目啟動時會報錯:
for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
原因在于,從 1.16.20 開始 lombok 包中有了一個叫 module-info.class 的文件,而低版本的 tomcat 不能識別這個文件,從而導(dǎo)致運(yùn)行時出錯。
其實這個問題對于我們而言不是問題,因為項目部署時,肯定不會部署到 tomcat 7 上,至少是 tomcat 8.5 。
對于這個問題,解決辦法有 3 個:
-
辦法 1:使用 tomcat8-maven-plugin ,代替 tomcat7 ;
-
辦法 2:使用低版本的 lombok,例如,
1.14.x
的最高版本1.14.8
。 -
辦法 3:將 lombok 的
<scope>
設(shè)置為provided
,這樣,maven 在打包時就不會將 lombok 包含在 jar/war 包內(nèi)。我們對 lombok 的使用也就是在編譯時使用,運(yùn)行時不需要它。