Today, I heard that gvm is replaced by sdkman.
Because there are go-lang tool called gvm (go-lang version manager) whose name conflicts gvm(Groovy enVironmental Manager).
For details you can find issue at sdkman repository.
In this entry, I'll explain how to update sdkman from gvm.
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) <<- entery Y ... 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"
- Run command suggested by
~ $ export SDKMAN_DIR="/Users/name/.sdkman" && source "/Users/name/.sdkman/bin/sdkman-init.sh" ~ $
Then you can run sdkman's command
sdk command in the current terminal.
- Mark candidate version.
After updating to sdkman, current using candidate's version is lost.
For example, run
sdk list gradle(currently I used gradle 2.7).
~ $ 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 ================================================================================
You can find that there are no mark of
currently in use.
To fix this problem, run
sdk default candidate version one by one.
In my case, I have used ...
So, I run these command.
$ sdk d gradle 2.7 $ sdk d groovy 2.4.4 $ sdk d groovyserv 1.0.0
.bash_profileto point sdkman directory and to call
The current updating script doesn't override
.bash_profile file to call
So you have to write it by hand.
- Remove gvm's commands from
- Add the following commands to
export SDKMAN_DIR="/path/to/user-home/.sdkman" [[ -s "/path/to/user-home/.sdkman/bin/sdkman-init.sh" && -z $(which sdkman-init.sh | grep '/sdkman-init.sh') ]] && source "/path/to/user-home/.sdkman/bin/sdkman-init.sh"
If you use gradle on daemon mode, a build might fail with following message.
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
This error happens because Gradle tries to use compiled cache already exist.
To avoid this error, stop daemon, and restart daemon.
The command to stop Gradle daemon is as follows.
$ gradle --stop
After running this command, run gradle with daemon mode, build will finish in success.