SDKMAN!是一个方便的工具,用于管理多个软件开发工具包的并行版本。该工具对Java开发者特别有用,因为它支持JVM的SDK,如Java、Groovy、Scala、Kotlin和Ceylon。还支持Gradle、Maven、Spring Boot和许多其他软件。
*SDKMAN!*支持包括Windows在内的所有主要操作系统,不过它最容易安装在所有基于Unix的系统上。
在macOS上,打开一个终端并运行。
curl -s "https://get.sdkman.io" | 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 | | 13.0.1.j9-adpt
| | 13.0.1.hs | adpt | | 13.0.1.hs-adpt
GraalVM | | 19.3.0.r11 | grl | | 19.3.0.r11-grl
| | 19.3.0.r8 | grl | | 19.3.0.r8-grl
| | 19.3.0.2.r11 | grl | | 19.3.0.2.r11-grl
Java.net | | 15.ea.2 | open | | 15.ea.2-open
| | 14.ea.28 | open | | 14.ea.28-open
| >>> | 13.0.1 | open | installed | 13.0.1-open
| | 12.0.2 | open | installed | 12.0.2-open
| | 11.0.2 | open | | 11.0.2-open
| | 10.0.2 | open | | 10.0.2-open
| | 9.0.4 | 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
扫描二维码关注公众号,回复: 14427322 查看本文章
已安装的Java版本的二进制文件可以在*SDKMAN!*的主目录中找到,该目录默认为~/.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.3 as default.
- 用下面的命令安装Gradle。
$ sdk install gradle
Downloading: gradle 6.0.1
In progress... 100.0%
Installing: gradle 6.0.1
Done installing!
Setting gradle 6.0.1 as default.
如果你需要多个版本的Gradle或Maven,你可以用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'
解开压缩包,从应用程序目录中运行。
gradle bootRun
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!*的全局分布,你也可以通过调用
./gradlew
命令在本地安装的Gradle中运行它。
一旦应用程序启动,请检查它是否对你的请求做出响应。
$ http localhost:8080
HTTP/1.1 404
Connection: keep-alive
Content-Type: application/json
Date: Sun, 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!?你觉得它什么时候有用?请在评论中分享您的想法。