SDKMan! 으로 commandline에서 JDK 와 개발 도구를 설치/관리하기


개요

SDK(Software Development Kit) Manager CLI 는 커맨드 라인에서 다양한 종류의 Open JDK 와 ant, gradle, maven 등 Java 기반 개발 도구를 설치하고 관리할 수 있게 해주는 command line 유틸리티입니다.

yum 이나 apt, brew 같은 패키지 매니저에 등록된 Open JDK 는 벤더가 다양하지 않고 업데이트가 자주 되지 않으며 하나의 버전밖에 사용하지 못하는 단점이 있습니다.

SDKMan 은 RVM(Ruby Version Manager) 처럼 다양한 벤더와 버전의 Open JDK 를 사용할 수 있게 해주며 Linux와 OSX, Solaris 등 여러 Unix 계열 운영체제를 지원합니다.

SDKMAN 설치

SDKMAN 은 의존성 최소화를 위해 shell script 로 작성했고 curl 과  zip/unzip 만 있으면 잘 동작합니다.


먼저 sdkman 을 curl 로 설치합니다.

$ curl -s https://get.sdkman.io | bash


쉘의 환경 설정 파일(Ex: .bash_profile) 의 맨 밑에 다음 내용을 추가하고 명령행에서도 실행해 줍니다. (또는 logoff 후 다시 login 해도 됩니다.)

source "$HOME/.sdkman/bin/sdkman-init.sh"


제대로 설치되었는지 확인하기 위해 다음 명령어를 실행해 봅니다.

$ sdk version

SDKMAN 5.11.5+713


목록 보기

list(축약: l) 명령으로 설치 가능한 개발 도구와 버전 정보를 확인할 수 있습니다.

$ sdk l

-------------------------------------------------------------------------------
Apache ActiveMQ (Classic) (5.16.2)                  https://activemq.apache.org/
...


특정 제품의 목록을 보려면 list 뒤에 제품명을 입력하면 되며 다음 명령은 지원하는 gradle 버전을 출력합니다.

$ sdk l gradle

7.2 61. 6.2
...


다음 명령으로 지원하는 OpenJDK 목록을 확인할 수 있습니다.

$ sdk list java

================================================================================
Available Java Versions
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 AdoptOpenJDK  |     | 16.0.1.j9    | adpt    |            | 16.0.1.j9-adpt      
               |     | 16.0.1.hs    | adpt    |            | 16.0.1.hs-adpt      
               |     | 11.0.11.j9   | adpt    |            | 11.0.11.j9-adpt     
               |     | 11.0.11.hs   | adpt    |            | 11.0.11.hs-adpt     
               |     | 8.0.292.j9   | adpt    |            | 8.0.292.j9-adpt     
               |     | 8.0.292.hs   | adpt    |            | 8.0.292.hs-adpt     
 Alibaba       |     | 11.0.9.4     | albba   |            | 11.0.9.4-albba      
               |     | 8.5.5        | albba   |            | 8.5.5-albba         
 Amazon        |     | 16.0.1.9.1   | amzn    |            | 16.0.1.9.1-amzn     
               |     | 11.0.11.9.1  | amzn    |            | 11.0.11.9.1-amzn    
               |     | 8.292.10.1   | amzn    |            | 8.292.10.1-amzn   
...


눈여겨볼 부분은 Version 과 Dist 를 결합한 Identifier 이며 설치시에 꼭 필요합니다.

OpenJDK 설치

설치하려면 install java  명령어뒤에 Identifier 를 기술합니다.

Adoptium Eclipse Temurin

whichjdk.com 에서 추천하는 JDK 구현물인 Temurin 을 설치하려면 다음 명령을 실행합니다.

먼저 버전 목록을 확인합니다.

$ sdk l java |grep -i tem


 Temurin       |     | 17.0.0       | tem     |            | 17.0.0-tem          
               |     | 16.0.2       | tem     |            | 16.0.2-tem          
               |     | 11.0.12      | tem     |            | 11.0.12-tem         
               | >>> | 8.0.302      | tem     | installed  | 8.0.302-tem 


LTS 버전인 8, 11, 17 을 설치합니다.

$ sdk i java 8.0.302-tem
$ sdk i java 11.0.12-tem  
$ sdk i java 17.0.0-tem


Amazon Correctto

예로 다음은 Amazon 의 Correctto OpenJDK 11.0.11 버전을 설치합니다.

$ sdk i java 11.0.11.9.1-amzn


Microsoft

다음은 MS 의 OpenJDK 11 버전을 설치합니다.

$ sdk i java 11.0.11.9.1-ms 


AdoptOpenJDK

제가 사용하는 CI 인 Atlassian bamboo 는 Adopt Open JDK 1.8 만 지원하므로 다음 명령어로 설치합니다.

$ sdk i java 8.0.292.j9-adpt


11 버전은 다음 명령어로 설치 가능합니다.

$ sdk i java 11.0.11.j9-adpt

개발 도구 설치

gradle

list gradle 명령으로 설치 가능한 버전을 확인할 수 있습니다.

$ sdk l gradle

================================================================================
Available Gradle Versions
================================================================================
 > * 7.3                 6.2.1               4.6                 2.7            
     7.3-rc-5            6.2                 4.5.1               2.6            
     7.3-rc-3            6.1.1               4.5                 2.5            
     7.3-rc-2            6.1                 4.4.1               2.4            
     7.3-rc-1            6.0.1               4.4                 2.3            
     7.2                 6.0                 4.3.1               2.2.1          
     7.2-rc-3            5.6.4               4.3                 2.2  


install gradle 명령에 설치할 버전을 지정하며 다음은 7.3 을 설치합니다.

$ sdk i gradle 7.3

maven

list gradle 명령으로 설치 가능한 버전을 확인할 수 있습니다.

$ sdk l maven

================================================================================
Available Maven Versions
================================================================================
     3.8.4                                                                      
     3.8.3                                                                      
     3.8.2

설치는 install maven 뒤에 설치할 버전을 명시하며 다음은 3.8.4 를 설치합니다.

$ sdk i maven 3.8.4

tomcat

install tomcat  뒤에 설치할 버전을 명시하며 다음은 9.0.40 를 설치합니다. 

$ sdk i tomcat 9.0.40


버전 관리

기본 버전 설정

default 명령으로 사용할  기본 버전을 설정할 수 있습니다.

$ sdk default java 8.0.292.hs-adpt

Default java version set to 8.0.292.hs-adpt


현재 버전 보기

current 명령으로 현재 기본 버전을 확인할 수 있습니다.

$ sdk current

Using:

gradle: 7.0.2
java: 11.0.11.9.1-amzn


사용 버전 지정

use 명령으로 사용할 버전을 지정할 수 있습니다.

다음은 기본 Java 를 MS 의 OpenJDK 11 로 설정합니다.

$ sdk use java 11.0.11.9.1-ms


개발 도구 설치

install 명령어로 여러 개발 도구를 설치할 수 있습니다.

gradle

$ sdk install gradle


이전 버전의 gradle 은 버전을 명시하면 됩니다. 

$ sdk install gradle 6.9


maven

$ sdk install maven


spring boot

spring Boot  cli 도 sdkman 으로 설치할 수 있습니다.

$ sdk install springboot


같이 보기

Ref