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

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


Related content

리눅스 명령창에서 oracle jdk 다운받기(Downloading Java JDK on Linux Command Line)
리눅스 명령창에서 oracle jdk 다운받기(Downloading Java JDK on Linux Command Line)
More like this
bamboo capability를 사용하여 특정 agent 만 job 을 실행할수 있도록 설정하기
bamboo capability를 사용하여 특정 agent 만 job 을 실행할수 있도록 설정하기
More like this
어떤 JDK 를 써야 할까? (whichjdk.com)
어떤 JDK 를 써야 할까? (whichjdk.com)
More like this
우분투 리눅스에 젠킨스 설치하기(install jenkins on ubuntu linux)
우분투 리눅스에 젠킨스 설치하기(install jenkins on ubuntu linux)
More like this
nvm (Node version Manager) 로 여러 버전의 nodejs 사용하기
nvm (Node version Manager) 로 여러 버전의 nodejs 사용하기
More like this