項目簡介
項目下有多個module
其中client和common-lib是用于存放公共類
gateway和backend都引用到client和common-lib
web是前端項目
docs是項目文檔路徑
将各module打包jar包
因為我的項目實際隻有gateway、backend、web需要打包運作, common-lib和client都是沒有啟動類的,無需運作。
于是開始打包backend
但是可以看到報錯了
Could not resolve dependencies for project…
根據報錯資訊可以看出是沒有找到依賴包client
這也就說明,我們需要先打包依賴module到本地maven倉庫中
于是先将兩個client和common-lib打包到maven倉庫中
注意項目要切換成你要打包的module
輸入指令:mvn install
打包成功後我們在本地的倉庫中就可以看到這兩個jar包了
然後再重新打包gateway和backend
打包gateway成功
運作測試 java -jar xxx
發現報錯
查閱相關資料發現是編譯時jdk版本問題
于是找到pom.xml中定義jdk的地方
将jdk修改為1.8,同時将release标簽和compilerargs标簽注釋掉,否則後面可能會報錯無效的标記
另外這裡的标記也注釋掉
然後重新打包,成功,同樣作用于backend上,打包成功(注:打包前先clean)
再次java -jar jar包名 運作項目,運作成功
後續開發後再次打包
再次打包報錯
後續開發,新增了不少子產品,再次打包時發現之前的打包出現了錯誤,具體報錯定位到測試類上,因為時間關系沒有細究原因,因為是測試類,之間将其删除了重新打包,打包成功了,但是運作時出錯
報錯内容大緻如下:
具體如圖所示
解決
根據提示其實大概能猜測出來是版本的問題,猜測大緻是java,tomcat版本問題。
我伺服器上的java版本是1.8,打包時也已經将jdk申明為1.8了,而且如上所示,之前使用同樣的方法是打包并且運作成功了的。現在出現了問題,于是查閱大量資料後,開始嘗試網上其他的辦法,彙總如下
- jdk降級 各module也降級
重新打包部署。這裡我采用這種辦法仍然不行
-
jdk更新
上面那種辦法啟發了我,既然降級不行那就更新,伺服器上的jdk是1.8版本的,部署采用的是14版本,是以在伺服器上又安裝了jdk14,并将之前在pom中的改動恢複了,還是采用jdk14,–enable-preview的注釋也取消了,如下所示
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<encoding>UTF-8</encoding>
<release>14</release>
<compilerArgs>--enable-preview</compilerArgs>
<!--idea不重置language level-->
<source>11</source>
<target>11</target>
<!--idea不重置language level-->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<argLine>--enable-preview</argLine>
</configuration>
</plugin>
</plugins>
這裡安裝後可能會遇到多jdk切換不成功的問題,可參考解決辦法如下:
引用來源
1.為了從jdk1.8切換到1.7,首先做的是将環境變量中的JAVA_HOME值改成1.7的安裝路徑。這個是必須做的。做完bai這個在cmd下輸入Java -version檢視是否切換,如果ok,那就成功了,否則試試後幾個方法。
2.找到控制台,檢視方式選擇大圖示或者小圖示,找到java選項并點選進入。然後選擇java欄,點選檢視,将dk1.8的啟用勾選去掉,并儲存。然後檢視是否切換。
3.找到目錄C:\Windows\System32,将java.exe,javaw.exe,javaws.exe删除即可。如果是64位系統,在C:\Windows\SysWOW64下去删。
4.将環境變量Path路徑中的%JAVA_HOME%\bin值移到最前面,我的是win10系統,移動後如下:
5.如果還不能切換,你可以使用 WIN + R 輸入regedit 敲回車打開系統資料庫
找到 HKEY_LOCAL_MACHINE–SOFTWARE–JavaSoft,點選Java Development Kit 更改右邊 CurrentVersion的值設定為你想要的版本值(右鍵-更改就可以)。
将項目打包後cmd運作,運作成功