gradleユーザーの方も読んでもらいたい記事です。gvmがsdkmanに変わるらしいです。
gvmがgo version managerと名前がバッティングしてて、かつgo version managerの方が古くから存在していたとのことで、gvmがsdkmanに変わるそうです。
で、アップデートの仕方をすでにqiitaに書いていらっしゃる方がいたので、それを見ながら作業しています。人柱ありがとうございます。おじさんは、もう老害です。
特に入れたいcandidatesもないので、普通にgvm selfupdate force
でやりました。
~ $ gvm selfupdate force GVM has been detected on your system... This update will upgrade GVM to SDKMAN! Do you want to continue with the upgrade? (Y/n) 途中くっそ長いので省略 Successfully upgraded SDKMAN. Please open a new terminal, or run the following in the existing one: export SDKMAN_DIR="/Users/name/.sdkman" && source "/Users/name/.sdkman/bin/sdkman-init.sh" ~ $
続いて、これを打てと言われているコマンドを打ちます。
~ $ export SDKMAN_DIR="/Users/name/.sdkman" && source "/Users/name/.sdkman/bin/sdkman-init.sh" ~ $
何事も無く終わった模様。
candidatesを確認すると、
~ $ sdk list gradle ================================================================================ Available Gradle Versions ================================================================================ * 2.7-rc-2 1.5 2.7-rc-1 1.4 * 2.7 1.3 * 2.6 1.2 * 2.5 1.12 途中省略 ================================================================================ + - local version * - installed > - currently in use ================================================================================ ~ $
あ、 currently in use
のマークがない。
gvmからsdkmanにアップグレードすると、少なくとも自分のLinux Mint17環境ではデフォルトで利用するGroovyとかのバージョン情報が吹き飛んだ。。。
— Koji (@saba1024) 2015, 9月 17
ほんとだ、デフォルト設定なくなってるな
— Yasuharu Nakano (@nobeans) 2015, 9月 17
これらについてはhelp
の情報を参考にsdk default gradle 2.7
と打てばよいらしい
~ $ sdk default gradle 2.7 Default gradle version set to 2.7 ~ $ sdk list gradle
そして、gradleのバージョンをもう一度確認。
~ $ sdk list gradle ================================================================================ Available Gradle Versions ================================================================================ * 2.7-rc-2 1.5 2.7-rc-1 1.4 > * 2.7 1.3 * 2.6 1.2 * 2.5 1.12 途中省略 ================================================================================ + - local version * - installed > - currently in use ================================================================================
2.7がデフォルトになった模様。
まとめ
gvmからsdkにアップデートする手順をまとめるとこうなります。
gvm selfupdate force
- 最後に表示されるコマンドを打つか、新しいターミナルを起動する
- 一つ一つ心をこめて、手作業で
sdk d candidate-name version
を打っていく
ちなみに
IntelliJさんは残念ながら、SDKの位置をgvmからsdkmanに変えてくれないので、こちらも心のこもった手作業で頑張りましょう。
ちなみに2
新たにターミナル立ち上げて、sdk
と入力したところ、そんなコマンドないと怒られる。
そこで、.bash_profile
や.bashrc
を見ましたがsdkman
のことが何も書かれてないようでした。
export SDKMAN_DIR="/Users/name/.sdkman" [[ -s "/Users/name/.sdkman/bin/sdkman-init.sh" && -z $(which sdkman-init.sh | grep '/sdkman-init.sh') ]] && source "/Users/name/.sdkman/bin/sdkman-init.sh"
をこれまでのgvm
の位置に書いてあげましょう。
なお、公式サイトはこちら
追記
【2015/09/17 23:02】
Gradleプロジェクトでビルドを行った時に、次のようにエラーが表示されることがあるようです。
FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project 'javajo-gradle'. > java.io.FileNotFoundException: /path/to/user/.gvm/gradle/2.7/lib/plugins/gradle-diagnostics-2.7.jar (No such file or directory) * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED
これは、Gradle daemonが有効になっていて、そのキャッシュを利用しようとして発生するエラーのようです。
この場合は、一度Gradle daemonを停止すると良いです。
Gradle daemonを停止する方法は以下のとおりです。
$ gradle --stop
その後に再びgradleを起動すれば、daemonのクラスが再作成されるので、ビルドがちゃんと行われるようになります。