容器化JDK
你可能剛看完Josh Long的演講,想訪問start.spring.io建立第一個應用;或者你喜歡Eclipse MicroProfile,想通過start.microprofile.io建立第一個應用;更奢侈一點兒,你想通過紅帽的Quarkus專案使用Supersonic Subatomic Java。
但是你忘了不同電腦的開發環境可能不太一樣;或許你想嘗試各種不同架構,不想被不同版本工具、CLI、JDK等淹沒。
實際情況是,開發環境並不是很容配置,有時候很雜亂。對Java開發者,至少需要安裝JDK,一個編輯器,以及類似於Maven或Gradle的開發工具。
幸運的是,現在只需要安裝Visual Studio Code,遠端開發擴充套件包,以及Docker桌面就夠了。有了這個組合,你就可以在電腦上執行以上這些框架。
我們來看看具體情況。
一旦安裝了遠端開發擴充套件包和VS Code,訪問start.spring.io,下載一個網路依賴包,解壓此檔案並記下目錄。
到了這一步,開啟command palette,選擇遠端容器:開啟容器中的目錄....,選擇剛才記下的目錄。系統會問選擇哪個容器映象作為開發環境。如果不更改Java版本,那麼需要Java8。選擇了Java8映象後,VSC將重新載入視窗,並開啟一個擁有基本功能的Java開發環境(JDK 8, Maven, and Gradle),並掛載解壓目錄。
剛才選擇的Docker容器內會安裝Java專案所需的任何擴充套件,這些擴充套件都會在dev容器中定義。現在你可以安全地修改Java類,新增Rest控制器,然後點選在main上方的RUN。
現在如果訪問 http://localhost:8080 ,會報錯。訪問之前需要將埠從dev容器中指向宿主機。
從command palette選擇遠端容器:轉發埠,選擇8080埠。
VS Code會彈出訪問URL,這樣訪問Spring Boot應用是不是很簡單?現在,訪問基於Maven的vanilla Eclipse MicroProfile也同樣簡單。如果你傾向於用Gradle,dev容器中都預裝了他們。如果想用Quarkus的話,由於建立Quarkus應用需要使用Maven從Quarkus原型中搭建,因此有些不同;這也適用於Micronaut,它使用特殊的CLI,下面我們會提供一個快速指南。
啟動一個全新VS Code視窗,不需要開啟目錄。從command palette選擇遠端容器:在容器中開啟目錄..,這次,建立一個全新目錄。
系統會問使用哪個dev容器映象;再次選擇Java8。 目錄只包含一個叫 .devcontainer的子目錄,用來儲存開發環境的配置和Dockerfile。後續可以修改它們,甚至提交到版本控制系統。在Mac中開啟Terminal,建立一個新的帶有如下maven命令引數的Quarkus專案:
mvn io.quarkus:quarkus-maven-plugin:0.14.0:create \ -DprojectGroupId=org.acme \ -DprojectArtifactId=getting-started \ -DclassName="org.acme.quickstart.GreetingResource" \ -Dpath="/hello"
你現在可以進入啟動目錄,帶著 mvn package quarkus:dev 啟動Quarkus。服務啟動執行後,可以通過 http://localhost:8080/hello 訪問。
如果使用Micronaut,唯一需要做的是安裝SDKMAN,然後在Terminal中使用Micronaut命令列。做完這一步,執行 apt-get update && apt-get install zip 安裝SDKMAN,之後執行Micronaut:
curl -s “https://get.sdkman.io" | bash \ && source “/root/.sdkman/bin/sdkman-init.sh” \ && sdk install micronaut
隨後,建立Micronaut應用,並執行 mn create-app example ,後續可以參照Micronaut的安裝指南。
如果想了解更多,可以通過SSH登入遠端開發環境。更多資訊可以參考:
如果有其它問題或者建議,可以訪問我的。如果喜歡這期內容,歡迎留下鼓勵。