「SDKMAN」とは?
SDK管理ツールの一種です。KotlinやGradleなど様々なSDKにおいて、バージョンを簡単に切り替えられるようになるので便利です。
環境
- OS:macOS High Sierra 10.13.1
- Java:1.8.0_162
- SDKMAN:5.6.2+294
- Gradle:4.6
- Kotlin:1.2.31
SDKMANのインストール
以下のコマンドを実行してインストールします。
$ curl -s "https://get.sdkman.io" | bash
$ source "~/.sdkman/bin/sdkman-init.sh"
Gradleのインストール
# SDKMANでインストールできるGradleのバージョン一覧を表示する
$ sdk list gradle
================================================================================
Available Gradle Versions
================================================================================
4.7-rc-1 4.4 3.5.1 2.3
4.6-rc-2 4.3.1 3.5 2.2.1
4.6-rc-1 4.3-rc-4 3.4.1 2.2
4.6 4.3-rc-3 3.4 2.14.1
4.5.1 4.3-rc-2 3.3 2.14
4.5-rc-2 4.3-rc-1 3.2.1 2.13
4.5-rc-1 4.3 3.2 2.12
4.5 4.2.1 3.1 2.11
4.4.1 4.2-rc-2 3.0 2.10
4.4-rc-6 4.2-rc-1 2.9 2.1
4.4-rc-5 4.2 2.8 2.0
4.4-rc-4 4.1 2.7 1.9
4.4-rc-3 4.0.2 2.6 1.8
4.4-rc-2 4.0.1 2.5 1.7
4.4-rc-1 4.0 2.4 1.6
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
# どのバージョンがいいのかわからないので、バージョンを指定せずにインストールする
$ sdk install gradle
# 4.6がインストールされたが、警告が出ている
$ gradle --version
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/Users/{ユーザー名}/.sdkman/candidates/gradle/4.6/lib/groovy-all-2.4.12.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------
Build time: 2018-02-28 13:36:36 UTC
Revision: 8fa6ce7945b640e6168488e4417f9bb96e4ab46c
Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM: 9.0.4 (Oracle Corporation 9.0.4+11)
OS: Mac OS X 10.13.1 x86_64
gradle --version
時に出力される警告について調べたところ、JDK 9を使っていると発生するエラーのようです。
https://github.com/gradle/gradle/issues/3118
JDK 8を使えばいいとのことなので、今回はそのようにします。
$ jenv global oracle64-1.8.0.162
$ gradle --version
------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------
Build time: 2018-02-28 13:36:36 UTC
Revision: 8fa6ce7945b640e6168488e4417f9bb96e4ab46c
Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM: 1.8.0_162 (Oracle Corporation 25.162-b12)
OS: Mac OS X 10.13.1 x86_64
警告が出力されなくなりました。
Kotlinのインストール
Gradleと同様にしてインストールします。
$ sdk list kotlin
================================================================================
Available Kotlin Versions
================================================================================
1.2.31 1.1.2-5 1.0.4
1.2.30 1.1.2-2 1.0.3
1.2.21 1.1.2 1.0.2
1.2.20 1.1.1 1.0.1-2
1.2.10 1.1-beta2 1.0.1-1
1.2.0 1.1-beta 1.0.1
1.1.61 1.1-RC 1.0.0
1.1.60 1.1-M04
1.1.51 1.1-M02
1.1.50 1.1-M01
1.1.4-3 1.1
1.1.4-2 1.0.7
1.1.4 1.0.6
1.1.3-2 1.0.5-2
1.1.3 1.0.5
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
$ sdk install kotlin
$ sdk list kotlin
================================================================================
Available Kotlin Versions
================================================================================
> * 1.2.31 1.1.2-5 1.0.4
1.2.30 1.1.2-2 1.0.3
1.2.21 1.1.2 1.0.2
1.2.20 1.1.1 1.0.1-2
1.2.10 1.1-beta2 1.0.1-1
1.2.0 1.1-beta 1.0.1
1.1.61 1.1-RC 1.0.0
1.1.60 1.1-M04
1.1.51 1.1-M02
1.1.50 1.1-M01
1.1.4-3 1.1
1.1.4-2 1.0.7
1.1.4 1.0.6
1.1.3-2 1.0.5-2
1.1.3 1.0.5
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
デフォルトで使用するSDKの選択
各SDKは複数のバージョンをインストールすることができます。
デフォルトで使用するSDKを選択するには sdk default
コマンドを使用します。
# sdk default {SDK} {バージョン}
$ sdk default kotlin 1.2.31
使用しているSDKの一覧表示
sdk current
コマンドで使用しているSDKの一覧が出力されます。
$ sdk current
Using:
gradle: 4.6
kotlin: 1.2.31
おわりに
GradleとKotlinをインストールすることができました。
これでいよいよAndroidアプリの開発ができるはずです。
(2018/04/05 23:30 追記)
.bash_profile
に書き込まれていたので、SDKMANがインストールされていない環境でも動作するように編集しました。
.bash_profile
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
- export SDKMAN_DIR="/Users/{ユーザー名}/.sdkman"
- [[ -s "/Users/{ユーザー名}/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/{ユーザー名}/.sdkman/bin/sdkman-init.sh"
+ export SDKMAN_DIR="$HOME/.sdkman"
+ if [ -d "${SDKMAN_DIR}" ]; then
+ [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
+ fi