使用SDKMAN管理多个Java SDK! 轻松

本文介绍了如何使用SDKMAN这个工具在不同操作系统上管理Java版本、安装Maven、Gradle和Spring Boot CLI。SDKMAN支持并行安装多个版本的SDK,简化了开发环境的配置和切换。
摘要由CSDN通过智能技术生成

SDKMAN! 是用于管理多个软件开发套件的并行版本的便捷工具。 该工具对Java开发人员特别有用,因为它支持JVM的SDK,例如Java,Groovy,Scala,Kotlin和Ceylon。 还支持Gradle,Maven,Spring Boot和许多其他工具。

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 setsdk 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! ? 您什么时候觉得有用? 在评论中分享您的想法。

翻译自: https://www.javacodegeeks.com/2020/01/manage-multiple-java-sdks-with-sdkman-with-ease.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值