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
같이 보기
- 어떤 JDK 를 써야 할까? (whichjdk.com)
- Java Open j9 과 HS(Hotspot) JVM 차이점
- gradle 로 Java application 빌드 환경 구성하기
- springboot cli 사용법