Управляем версиями SDKs без головной боли
Тут я хочу немного рассказать о замечательном инструменте позволяющем легко, а главное быстро менять версии Java и не только.
SDKMan это инструмент позволяющий управлять версиями довольно большого количества SDK и/или Maven, Gradle и т.д. Полный список всего что он поддерживает можно найти тут.
Мы же рассмотрим возможности этого инструмента на примере Java и то чем он полезен.
Установка
Первое что нам необходимо это установить SDKMan на ваш компьютер.
SDKMan работает на следующих OS:
- Mac OS
- Linux
- WSL2 (Как установить?)
- Cygwin
- Solaris
- FreeBSD
Это актуальный список на момент написание этого гайда.
И так теперь открываем ваш любимый CommandLine или Terminal и выполняем следующую команду, которая скачает установочный пакет SDKMan и второй командой активируем его:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
Готово, теперь мы можем проверить работает ли sdkman корректно:
sdk version
Официальную инструкцию по установке вы можете прочитать на официальном сайте.
Управление версиями Java/Kotlin
Первое что мы сделаем это посмотрим список всех доступных версий Java для установки:
> sdk list java
================================================================================
Available Java Versions
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
AdoptOpenJDK | | 16.0.0.j9 | adpt | | 16.0.0.j9-adpt
| | 16.0.0.hs | adpt | | 16.0.0.hs-adpt
| | 11.0.10.j9 | adpt | | 11.0.10.j9-adpt
| | 11.0.10.hs | adpt | | 11.0.10.hs-adpt
| >>> | 11.0.9.j9 | adpt | local only | 11.0.9.j9-adpt
| | 8.0.282.j9 | adpt | | 8.0.282.j9-adpt
| | 8.0.282.hs | adpt | | 8.0.282.hs-adpt
Amazon | | 16.0.0.36.1 | amzn | | 16.0.0.36.1-amzn
| | 15.0.2.7.1 | amzn | | 15.0.2.7.1-amzn
| | 11.0.10.9.1 | amzn | | 11.0.10.9.1-amzn
| | 8.282.08.1 | amzn | | 8.282.08.1-amzn
Выбрав из списка нужную вам версию выполняем установку следующей командой:
sdk install java 16.0.0.j9-adpt
Обратите внимание! Необходимой вам версия находится в колонке "Identifier".
Все установленные SDK будут расположены в корневой директории ~/.sdkman/candidates/java/
:
ls -al ~/.sdkman/candidates/java/
Как вы понимаете мы можем установить несколько версий SDK и переключаться между ними:
sdk use java 11.0.9.j9-adpt
Для того чтобы установить версию по умолчанию:
sdk default java 8.0.282.j9-adpt
Все эти команды install, use и default также применимы и к примерам ниже.
Дополнительные инструменты
Помимо SDK мы можем установить необходимые нам инструменты такие как:
- Maven
- Gradle
- Spring Boot CLI
sdk install maven
sdk install gradle
sdk install springboot
В данном примере мы не указывали версию, в таком случаем будет взята последняя стабильная версия. Также применимо ко всем SDKs.
Нужен ли мне SDKMan?
Если вам приходится работать с несколькими версиями Java или с одновременно несколькими SDK то это уже тот минимум при котором я рекомендую добавить себе в список необходимых инструментов SDKMan!
С помощью этого инструмента мы избавляемся от головной боли по установке и переустановки версий SDK и нужных для работы инструментов.