大家好,我是棧長。
昨天有粉絲反饋棧長《Spring Boot 核心技術(shù)課》中的一個(gè)問題:
Spring Boot CLI 命令行工具中的 run 命令找不到了?
這是什么鬼?后面為你揭曉原由!
Spring Boot CLI 基本介紹
Spring Boot CLI 全稱即:Spring Boot Command-Line Interface,是一個(gè)構(gòu)造 Spring Boot 項(xiàng)目命令行工具,可用于從 start.spring.io 網(wǎng)站構(gòu)建新項(xiàng)目或用來密碼加密。
它可以運(yùn)行 Groovy 腳本,它也是 JVM 系語言,擁有和 Java 類似的語法,但它比 Java 要無比簡潔,無需太多冗余的項(xiàng)目結(jié)構(gòu)配置代碼,從而可以快速構(gòu)建項(xiàng)目。
Spring Boot 并不一定需要 Spring Boot CLI,但有了 Spring Boot CLI ,可以在無需 IDE 的情況下快速啟動(dòng)基于 Spring 的應(yīng)用程序。
Spring Boot CLI 提供了很多快捷功能,其中一個(gè)亮點(diǎn)就是可以支持運(yùn)行 Groovy 腳本,以快速構(gòu)建 Spring 項(xiàng)目。
比如,棧長在桌面創(chuàng)建了一個(gè)簡單的 app.groovy 腳本文件:
@RestController
class ThisWillActuallyRun {
@RequestMapping("/hi")
String home() {
"Hello Spring Boot!"
}
}
然后使用 Spring Boot CLI 運(yùn)行命令就能直接運(yùn)行了:
$ 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)
如上啟動(dòng)日志,端口啟動(dòng)在 8080,就像啟動(dòng)正常的 Java 應(yīng)用程序一樣,因?yàn)?Groovy 本身就是 JVM 系編程語言,在 Java 中創(chuàng)建一個(gè)接口可能需要一大堆的項(xiàng)目配置,而 Groovy 僅僅只需要一個(gè)腳本就夠了。
Spring Boot CLI 移除 run 命令
棧長翻閱了大量官方資料,對比 Spring Boot 各個(gè)版本的官方文檔,發(fā)現(xiàn)在 Spring Boot 3.0.2 版本中,移除了關(guān)于 Spring Boot CLI 可運(yùn)行 Groovy 腳本的描述,如下圖所示。
Spring Boot 2.7.x 文檔:
Spring Boot 3.0.2 文檔:
雖然 Spring Boot 3.0.1 文檔中還有相關(guān)描述,但是經(jīng)過測試,實(shí)際上已經(jīng)在 3.0.0 版本中移除了 run 命令,并且沒有新的替換命令,也就是說 Spring Boot 3.0+ 不再支持運(yùn)行 Groovy 腳本了。
我又找到官方倉庫中的以下參考資料:
https://github.com/spring-projects/spring-boot/issues/33482
這讓我想到了 Spring Cloud 2022 這個(gè)版本,它移除了對 Spring Cloud CLI 的支持,2022 版本一共移除了以下三個(gè)模塊的依賴:
- spring-cloud-sleuth(已移除)
- spring-cloud-cloudfoundry(已移除)
- spring-cloud-cli(已移除)
另外,據(jù)棧長所知,Spring Boot CLI 命令行雖然很犀利,但實(shí)際開發(fā)工作中確很少使用到,沒什么人用還要持續(xù)維護(hù),所以官方?jīng)Q定精簡該命令行工具就不覺得奇怪了。
Spring Boot 3.0.0 里程碑版本還能用,到了正式版就移除了,真是有點(diǎn)猝不及防。。
關(guān)于這點(diǎn)更新,Spring Boot 的版本更新文檔也沒有描述,棧長之前確實(shí)沒測試到,昨天棧長也把《Spring Boot 核心技術(shù)課》中的 Spring Boot CLI 內(nèi)容做了相關(guān)更新:
最后,如果你還沒用過 Spring Boot,最后推薦下棧長的《Spring Boot 核心技術(shù)課》,基于最新 Spring Boot 3.x 主版本,持續(xù)更新,包括底層實(shí)現(xiàn)原理及代碼實(shí)戰(zhàn),知識(shí)點(diǎn)非常齊全,助你快速打通 Spring Boot 的各個(gè)環(huán)節(jié)。
Spring Boot 最新最全的實(shí)戰(zhàn)代碼已上傳 Github:
https://github.com/javastacks/spring-boot-best-practice
好了,今天的分享就到這里了,后續(xù)棧長也會(huì)繼續(xù)關(guān)注并分享更多的 Spring Boot 干貨,關(guān)注公眾號(hào)Java技術(shù)棧第一時(shí)間推送。
版權(quán)聲明: 本文系公眾號(hào) "Java技術(shù)棧" 原創(chuàng),轉(zhuǎn)載、引用本文內(nèi)容請注明出處,抄襲、洗稿一律投訴侵權(quán),后果自負(fù),并保留追究其法律責(zé)任的權(quán)利。
近期熱文推薦:
1.1,000+ 道 Java面試題及答案整理(2022最新版)
2.勁爆!Java 協(xié)程要來了。。。
3.Spring Boot 2.x 教程,太全了!
4.別再寫滿屏的爆爆爆炸類了,試試裝飾器模式,這才是優(yōu)雅的方式??!
5.《Java開發(fā)手冊(嵩山版)》最新發(fā)布,速速下載!文章來源:http://www.zghlxwxcb.cn/news/detail-695802.html
覺得不錯(cuò),別忘了隨手點(diǎn)贊+轉(zhuǎn)發(fā)哦!文章來源地址http://www.zghlxwxcb.cn/news/detail-695802.html
到了這里,關(guān)于Spring Boot 宣布移除 run 命令,真讓我猝不及防。。。的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!