執行mvn clean package spring-boot:repackage,報錯如下:
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.3.RELEASE:repackage (default)
on project webapps-api-bid: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.5.3.RELEASE:
repackage failed: Unable to find main class
錯誤提示:
repackage failed: Unable to find main class
原因:
多模塊打包時,如果項目模塊包含common,core等模塊,這些模塊不需要啟動,應把其打成不可執行包來使用那當我們在maven中有多重依賴時,應注意一點,Common打包出來的應該是不可執行的jar包,所以不要在Common的pom中定義spring-boot-maven-plugin插件。
項目
yixue(父類工程,定義各模塊,指定模塊依賴jar版本)
|------------------------------
|--yixue-admin 后台用戶注冊
|
|--yixue-course 后台視頻管理
|
|--yixue-commom common工具包,維護工具類,公共類
|
|--yixue-ui web界面,請求跳轉,攔截等
|
|--yixue-eureka SpringCloud注冊
解決方法:
common項目中除了必要的依賴包以外,maven打包的插件不要再添加一遍了,因為這個SpringBoot插件會在Maven的package后進行二次打包,目的為了生成可執行jar包,如果C中定義了這個插件,會報錯提示沒有找到main函數
簡單來說,如果你的root:`<parent></parent>`項目已經添加了`spring-boot-maven-plugin`插件,那么common就別依賴root了,自己包含一些必要的依賴包,之后別手動添加打包插件即可,如果打包還是失敗的話,對root項目clean再install一下,之后應該沒有什么問題了