개요

SDK(Software Development Kit) Manager CLI 는 커맨드 라인에서 다양한 종류의 Open JDK 와 ant, gradle 등 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
BASH


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

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


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

$ sdk version

SDKMAN 5.11.5+713
BASH


목록 보기

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

$ sdk l

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


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

$ sdk l gradle

7.2 61. 6.2
...
BASH


다음 명령으로 지원하는 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   
...
BASH


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

OpenJDK 설치

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


Amazon Correctto

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

$ sdk i java 11.0.11.9.1-amzn
BASH


Microsoft

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

$ sdk i java 11.0.11.9.1-ms 
BASH


AdoptOpenJDK

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

$ sdk i java 8.0.292.j9-adpt
BASH


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

$ sdk i java 11.0.11.j9-adpt
BASH

개발 도구 설치

gradle

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

$ sdk i gradle 7.2
BASH

tomcat

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

$ sdk i tomcat 9.0.40
BASH


버전 관리

기본 버전 설정

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

$ sdk default java 8.0.292.hs-adpt

Default java version set to 8.0.292.hs-adpt
BASH


현재 버전 보기

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

$ sdk current

Using:

gradle: 7.0.2
java: 11.0.11.9.1-amzn
BASH


사용 버전 지정

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

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

$ sdk use java 11.0.11.9.1-ms
BASH


개발 도구 설치

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

gradle

$ sdk install gradle
BASH


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

$ sdk install gradle 6.9
BASH


maven

$ sdk install maven
BASH


spring boot

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

$ sdk install springboot
BASH


같이 보기

Ref