我最近將我的庫從 gradle 5.X 升級到 7.3.1,并將 Spring-Boot 從 2.4.X 升級到 2.6.X,但我遇到了問題。我正在使用 gradle build 創建一個 jar 并在我的服務器上執行這個 jar,這在 Spring-Boot 2.4.X 上運行良好,但現在 2.6.XI 遇到了一些問題:
沒有主要清單屬性
所以我添加到我的 build.gradle
jar {
manifest {
attributes "Main-Class": "my.package.MainClass"
}
from {
configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
現在我收到了錯誤
無法找到或加載主類 my.package.MainClass
如果我切換回 2.4.X,它作業正常。我的罐子來自:
- 彈簧靴 2.4.X -> 90Mo
- 彈簧靴 2.6.X -> 500 Ko
所以我嘗試用 shadowJar 創建一個胖罐子并得到這個錯誤
錯誤 org.springframework.boot.SpringApplication - 應用程式運行失敗 12 月 21 日 10:04:09 vps-11602ed1 專案 [12706]:org.springframework.context.ApplicationContextException:無法啟動 Web 服務器;嵌套例外是 org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext 由于缺少 ServletWebServerFactory bean。
如果有人得到有關如何使其與 Spring-boot 2.6.X 一起使用的答案。
提前致謝
uj5u.com熱心網友回復:
我發現了問題。當我從 springboot 2.4.X 升級到 2.6.X 時,現在 gradle build 正在用我的休閑 jar 生成一個新的 jar“plain”。我將我的 jar 重命名為相同的名稱。所以我沒有使用最大的罐子,而是使用最小的罐子。剛剛將其添加到我的 gradle.build 中:
jar {
enabled = false
}
所以現在,它沒有創建“普通”罐子,一切正常
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/393371.html
