大家好,我是棧長。 昨天有粉絲反饋棧長《[Spring Boot 核心技術課](https://mp.weixin.qq.com/s/hJwHvmalVWJObyVkytfdsA)》中的一個問題: ![](https://img2023.cnblogs.com/other/1218593/20230 ...
大家好,我是棧長。
昨天有粉絲反饋棧長《Spring Boot 核心技術課》中的一個問題:
Spring Boot CLI 命令行工具中的 run 命令找不到了?
這是什麼鬼?後面為你揭曉原由!
Spring Boot CLI 基本介紹
Spring Boot CLI 全稱即:Spring Boot Command-Line Interface,是一個構造 Spring Boot 項目命令行工具,可用於從 start.spring.io 網站構建新項目或用來密碼加密。
它可以運行 Groovy 腳本,它也是 JVM 系語言,擁有和 Java 類似的語法,但它比 Java 要無比簡潔,無需太多冗餘的項目結構配置代碼,從而可以快速構建項目。
Spring Boot 並不一定需要 Spring Boot CLI,但有了 Spring Boot CLI ,可以在無需 IDE 的情況下快速啟動基於 Spring 的應用程式。
Spring Boot CLI 提供了很多快捷功能,其中一個亮點就是可以支持運行 Groovy 腳本,以快速構建 Spring 項目。
比如,棧長在桌面創建了一個簡單的 app.groovy 腳本文件:
@RestController
class ThisWillActuallyRun {
@RequestMapping("/hi")
String home() {
"Hello Spring Boot!"
}
}
然後使用 Spring Boot CLI 運行命令就能直接運行了:
$ spring run app.groovy
Resolving dependencies....................
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot ::
...
...Started application in 2.544 seconds (JVM running for 4.453)
...Tomcat started on port(s): 8080 (http) with context path ''
...Started application in 2.544 seconds (JVM running for 4.453)
如上啟動日誌,埠啟動在 8080,就像啟動正常的 Java 應用程式一樣,因為 Groovy 本身就是 JVM 系編程語言,在 Java 中創建一個介面可能需要一大堆的項目配置,而 Groovy 僅僅只需要一個腳本就夠了。
Spring Boot CLI 移除 run 命令
棧長翻閱了大量官方資料,對比 Spring Boot 各個版本的官方文檔,發現在 Spring Boot 3.0.2 版本中,移除了關於 Spring Boot CLI 可運行 Groovy 腳本的描述,如下圖所示。
Spring Boot 2.7.x 文檔:
Spring Boot 3.0.2 文檔:
雖然 Spring Boot 3.0.1 文檔中還有相關描述,但是經過測試,實際上已經在 3.0.0 版本中移除了 run 命令,並且沒有新的替換命令,也就是說 Spring Boot 3.0+ 不再支持運行 Groovy 腳本了。
我又找到官方倉庫中的以下參考資料:
這讓我想到了 Spring Cloud 2022 這個版本,它移除了對 Spring Cloud CLI 的支持,2022 版本一共移除了以下三個模塊的依賴:
- spring-cloud-sleuth(已移除)
- spring-cloud-cloudfoundry(已移除)
- spring-cloud-cli(已移除)
另外,據棧長所知,Spring Boot CLI 命令行雖然很犀利,但實際開發工作中確很少使用到,沒什麼人用還要持續維護,所以官方決定精簡該命令行工具就不覺得奇怪了。
Spring Boot 3.0.0 里程碑版本還能用,到了正式版就移除了,真是有點猝不及防。。
關於這點更新,Spring Boot 的版本更新文檔也沒有描述,棧長之前確實沒測試到,昨天棧長也把《Spring Boot 核心技術課》中的 Spring Boot CLI 內容做了相關更新:
最後,如果你還沒用過 Spring Boot,最後推薦下棧長的《Spring Boot 核心技術課》,基於最新 Spring Boot 3.x 主版本,持續更新,包括底層實現原理及代碼實戰,知識點非常齊全,助你快速打通 Spring Boot 的各個環節。
Spring Boot 最新最全的實戰代碼已上傳 Github:
好了,今天的分享就到這裡了,後續棧長也會繼續關註並分享更多的 Spring Boot 乾貨,關註公眾號Java技術棧第一時間推送。
版權聲明: 本文系公眾號 "Java技術棧" 原創,轉載、引用本文內容請註明出處,抄襲、洗稿一律投訴侵權,後果自負,並保留追究其法律責任的權利。
近期熱文推薦:
1.1,000+ 道 Java面試題及答案整理(2022最新版)
4.別再寫滿屏的爆爆爆炸類了,試試裝飾器模式,這才是優雅的方式!!
覺得不錯,別忘了隨手點贊+轉發哦!