SDKMAN! 是用于管理多个软件开发套件的并行版本的便捷工具。 该工具对Java开发人员特别有用,因为它支持JVM的SDK,例如Java,Groovy,Scala,Kotlin和Ceylon。 还支持Gradle,Maven,Spring Boot和许多其他工具。
- 管理Java版本
- 安装Maven和Gradle
- 安装Spring Boot CLI
- 链接
SDKMAN! 尽管最容易在所有基于Unix的系统上安装,但所有主要操作系统(包括Windows)都支持该功能。
在macOS上,打开终端并运行:
curl -s " https://get.sdkman.io " | bash | bash
下载完成后,重新启动终端会话或运行:
source "$HOME/.sdkman/bin/sdkman-init.sh"
提示:我默认使用iTerm2终端。 在此博客文章中了解我在macOS上使用的工具: macOS:(Java)开发人员的必备工具
安装完成后, SDKMAN! 提供了一个方便的sdk
命令来管理SDK,称为Candidates 。 要列出所有可用的候选人,请使用sdk list
命令。
管理Java版本
我最喜欢SDKMAN的地方! 在您的操作系统中管理不同的Java版本是一件轻而易举的事情。 您可以使用基本命令列出,安装,卸载并将选定的Java版本设置为默认版本。
- 要列出可用的Java版本,请运行:
sdk list java
$ sdk list java ================================================================================ Available Java Versions ================================================================================ Vendor | Use | Version | Dist | Status | Identifier -------------------------------------------------------------------------------- AdoptOpenJDK | | 13.0 . 1 .j9 | adpt | | .j9 | adpt | | 13.0 . 1 .j9-adpt | | 13.0 . 1 .hs | adpt | | .hs | adpt | | 13.0 . 1 .hs-adpt GraalVM | | 19.3 . 0 .r11 | grl | | .r11 | grl | | 19.3 . 0 .r11-grl | | 19.3 . 0 .r8 | grl | | .r8 | grl | | 19.3 . 0 .r8-grl | | 19.3 . 0.2 .r11 | grl | | .r11 | grl | | 19.3 . 0.2 .r11-grl Java.net | | 15 .ea. 2 | open | | | open | | 15 .ea. 2 -open | | 14 .ea. 28 | open | | | open | | 14 .ea. 28 -open | >>> | 13.0 . 1 | open | installed | | open | installed | 13.0 . 1 -open | | 12.0 . 2 | open | installed | | open | installed | 12.0 . 2 -open | | 11.0 . 2 | open | | | open | | 11.0 . 2 -open | | 10.0 . 2 | open | | | open | | 10.0 . 2 -open | | 9.0 . 4 | open | | | open | | 9.0 . 4 -open ================================================================================ Use the Identifier for installation: $ sdk install java 11.0 . 3 .hs-adpt ================================================================================
- 要安装给定版本,请使用标识符 :
sdk install java 12.0.2-open
可以在家用SDKMAN中找到已安装Java版本的二进制文件! 该目录默认为~/.sdkman/candidates/java
。
$ ls -al ~/.sdkman/candidates/java/ drwxr-xr-x 9 rafal.borowiec staff 288 Jan 4 00 : 33 12.0 . 2 -open drwxr-xr-x 9 rafal.borowiec staff 288 Oct 6 14 : 05 13.0 . 1 -open lrwxr-xr-x 1 rafal.borowiec staff 57 Jan 4 00 : 20 current -> /Users/rafal.borowiec/.sdkman/candidates/java/ 13.0 . 1 -open
例如,如果要在IntelliJ的项目中使用多个版本,这将很有用。
- 要将给定版本设置为默认运行:
sdk default java 12.0.2-open
:
我们可以使用sdk default
命令快速验证更改版本有多么容易:
$ java -version openjdk version "13.0.1" 2019 - 10 - 15 OpenJDK Runtime Environment (build 13.0 . 1 + 9 ) OpenJDK 64 -Bit Server VM (build 13.0 . 1 + 9 , mixed mode, sharing) $ ls -al ~/.sdkman/candidates/java/ drwxr-xr-x 9 rafal.borowiec staff 288 Jan 4 00 : 33 12.0 . 2 -open drwxr-xr-x 9 rafal.borowiec staff 288 Oct 6 14 : 05 13.0 . 1 -open lrwxr-xr-x 1 rafal.borowiec staff 57 Jan 4 00 : 20 current -> /Users/rafal.borowiec/.sdkman/candidates/java/ 13.0 . 1 -open $ sdk default java 12.0 . 2 -open Default java version set to 12.0 . 2 -open $ java -version openjdk version "12.0.2" 2019 - 07 - 16 OpenJDK Runtime Environment (build 12.0 . 2 + 10 ) OpenJDK 64 -Bit Server VM (build 12.0 . 2 + 10 , mixed mode, sharing) $ ls -al ~/.sdkman/candidates/java/ drwxr-xr-x 9 rafal.borowiec staff 288 Jan 4 00 : 33 12.0 . 2 -open drwxr-xr-x 9 rafal.borowiec staff 288 Oct 6 14 : 05 13.0 . 1 -open lrwxr-xr-x 1 rafal.borowiec staff 57 Jan 5 11 : 49 current -> /Users/rafal.borowiec/.sdkman/candidates/java/ 12.0 . 2 -open
- 要在当前终端会话中使用给定版本,请运行:
sdk use java 12.0.2-open
安装Maven和Gradle
Maven和Gradle是开源工具,用于自动化构建应用程序和管理其依赖项的过程。 两种工具都可以使用SDKMAN进行管理! 。
- 使用以下命令安装Maven:
$ sdk install maven Downloading: maven 3.6 . 3 In progress... 100.0 % Installing: maven 3.6 . 3 Done installing! Setting maven 3.6 . default as 3 .
- 使用以下命令安装Gradle:
$ sdk install gradle Downloading: gradle 6.0 . 1 In progress... 100.0 % Installing: gradle 6.0 . 1 Done installing! Setting gradle 6.0 . default as 1 .
如果您需要Gradle或Maven的多个版本,则可以通过提供所需版本的sdk install maven 3.6.1
来安装它们, sdk install maven 3.6.1
,然后使用sdk set
或sdk default
命令在它们之间进行切换。
安装Spring Boot CLI
Spring Boot CLI是一个命令行工具,如果您想快速开发Spring应用程序,可以使用它。
您可以使用sdk list springboot
命令检查可用的Spring Boot版本:
$ sdk list springboot ================================================================================ Available Springboot Versions ================================================================================ 2.2 . 2 .RELEASE 2.0 . 1 .RELEASE 1.5 . 1 .RELEASE 1.2 . 3 .RELEASE 2.2 . 1 .RELEASE 2.0 . 0 .RELEASE 1.4 . 7 .RELEASE 1.2 . 2 .RELEASE 2.2 . 0 .RELEASE 1.5 . 22 .RELEASE 1.4 . 6 .RELEASE 1.2 . 1 .RELEASE
通过运行sdk install springboot
安装默认版本。
安装后, spring
命令将可用:
$ spring usage: spring [--help] [--version] <command> [<args>]
您现在可以通过运行以下命令来引导新的Spring Boot项目:
$ spring init --build=gradle --java-version= 12 --dependencies=web --packaging=jar my-app.zip Using service at https: //start.spring.io Content saved to 'my-app.zip'
解压缩该zip文件,然后从应用程序目录中运行:
gradle bootRun Tomcat started on port(s): (http) with context path '' Tomcat started on port(s): 8080 (http) with context path 2020 - 01 - 04 12 : 36 : 59.704 INFO 57156 --- [ main] com.example.myapp.DemoApplication : Started DemoApplication in 1.251 seconds (JVM running for 1.485 )
注意:以上命令使用了随SDKMAN一起安装的全局Gradle发行版! ,您也可以通过调用./gradlew
命令在本地Gradle安装中运行它。
应用程序启动后,请检查它是否响应您的请求:
$ http localhost: 8080 HTTP/ 1.1 404 Connection: keep-alive Content-Type: application/json Date: Sun, 2020 Jan 05 Jan 2020 11 : 38 : 08 GMT Keep-Alive: timeout= 60 Transfer-Encoding: chunked Vary: Origin Vary: Access-Control-Request-Method Vary: Access-Control-Request-Headers { "error" : "Not Found" , "message" : "No message available" , "path" : "/" , "status" : 404 , "timestamp" : "2020-01-05T11:38:08.041+0000" }
提示:我使用的是httpie客户端,而不是cURL 。 在此博客文章中了解我在macOS上使用的工具: macOS:(Java)开发人员的必备工具
链接
- SDKMAN!
- macOS:(Java)开发人员必备工具
您是否使用SDKMAN! ? 您什么时候觉得有用? 在评论中分享您的想法。
翻译自: https://www.javacodegeeks.com/2020/01/manage-multiple-java-sdks-with-sdkman-with-ease.html