SDKMAN(软件开发包管理器)可以对各种各样的二进制SDK包进行版本管理,包括Groovy和JDK等。
目前MacOS和Linux支持比较好,安装比较方便,不过对于Windows安装相对来讲有点麻烦。
Windows下安装选择
官网文档地址:https://sdkman.io/install
总体来讲,Windows下安装需要有Linux环境,官网提供三种在Windows下安装的方式:
- 安装Windows Linux Subsystem (WLS)和其他一些工具
- 安装Cygwin以及一些工具
- 安装Git Bash for Windows,包含MinGW(Minimalist GNU for Windows),以及一些工具。
目前看三种方式都需要在Windows下安装一个简单Linux的环境,以及一些常用的工具
本文以第三种,Git Bash为安装方式,因为一般开发已经使用了Git作为版本管理工具,安装Git客户端的时候可以一起安装Git Bash。
安装Git Bash
下载地址:https://git-scm.com/download/win(国内可能被墙)
下载地址(淘宝镜像):https://npm.taobao.org/mirrors/git-for-windows/
如:https://npm.taobao.org/mirrors/git-for-windows/v2.26.0.windows.1/Git-2.26.0-64-bit.exe
安装基本安装默认选项即可
安装完成后,可以用开始菜单或者桌面的【Git Bash】图标开启Git Bash命令行工具。
安装其他工具
要sdkman能正常安装,需要安装一些其他工具,看信息提示主要有curl,unzip,zip和sed,由于Git Bash自带的MinGW是简单版本的,已经有部分软件已经安装上了
目前看curl,uzip,sed已经安装上了:
curl -V
unzip -v
sed --version
缺少zip,如果尝试安装sdkman会报错
curl -s "https://get.sdkman.io" | bash
Please install zip on your system using your favourite package manager.
Restart after installing zip.
需要安装zip软件,现在可以先安装完整版MinGW通过mingw-get安装,也可以直接找zip软件放到MinGW目录下。
直接找zip软件:
找到这个地址:https://sourceforge.net/projects/gnuwin32/files/
这里有很多支持的MinGW环境的软件,搜索zip即可。
https://sourceforge.net/projects/gnuwin32/files/zip/3.0/zip-3.0-bin.zip/download
下载完zip-3.0-bin.zip之后,把里面的zip.exe复制到Git Bash下mingwbin目录下(根据自己的安装目录如:C:softsGitmingwbin,似乎放到usrbin也可以)
安装SDKMAN
工具安装完成之后,可以开始安装SDKMAN了:
curl -s "https://get.sdkman.io" | bash
注意这个地址不是很稳定,也有一定几率网络连接失败,可以多试试。
$ curl -s "https://get.sdkman.io" | bash
-+syyyyyyys:
`/yho:` -yd.
`/yh/` +m.
.oho. hy .`
.sh/` :N` `-/o` `+dyyo:.
.yh:` `M- `-/osysoym :hs` `-+sys: hhyssssssssy+
.sh:` `N: ms/-`` yy.yh- -hy. `.N-````````+N.
`od/` `N- -/oM- ddd+` `sd: hNNm -N:
:do` .M. dMMM- `ms. /d+` `NMMs `do
.yy- :N` ```mMMM. - -hy. /MMM: yh
`+d+` `:/oo/` `-/osyh/ossssssdNMM` .sh: yMMN` /m.
-dh- :ymNMMMMy `-/shmNm-`:N/-.`` `.sN /N- `NMMy .m/
`oNs` -hysosmMMMMydmNmds+-.:ohm : sd` :MMM/ yy
.hN+ /d: -MMMmhs/-.` .MMMh .ss+- `yy` sMMN` :N.
:mN/ `N/ `o/-` :MMMo +MMMN- .` `ds mMMh do
/NN/ `N+....--:/+oooosooo+:sMMM: hMMMM: `my .m+ -MMM+ :N.
/NMo -+ooooo+/:-....`...:+hNMN. `NMMMd` .MM/ -m: oMMN. hs
-NMd` :mm -MMMm- .s/ -MMm. /m- mMMd -N.
`mMM/ .- /MMh. -dMo -MMMy od. .MMMs..---yh
+MMM. sNo`.sNMM+ :MMMM/ sh`+MMMNmNm+++-
mMMM- /--ohmMMM+ :MMMMm. `hyymmmdddo
MMMMh. ```` `-+yy/`yMMM/ :MMMMMy -sm:.``..-:-.`
dMMMMmo-.``````..-:/osyhddddho. `+shdh+. hMMM: :MmMMMM/ ./yy/` `:sys+/+sh/
.dMMMMMMmdddddmmNMMMNNNNNMMMMMs sNdo- dMMM- `-/yd/MMMMm-:sy+. :hs- /N`
`/ymNNNNNNNmmdys+/::----/dMMm: +m- mMMM+ohmo/.` sMMMMdo- .om: `sh
`.-----+/.` `.-+hh/` `od. NMMNmds/ `mmy:` +mMy `:yy.
/moyso+//+ossso:. .yy` `dy+:` .. :MMMN+---/oys:
/+m: `.-:::-` /d+ +MMMMMMMNh:`
+MN/ -yh. `+hddhy+.
/MM+ .sh:
:NMo -sh/
-NMs `/yy:
.NMy `:sh+.
`mMm` ./yds-
`dMMMmyo:-.````.-:oymNy:`
+NMMMMMMMMMMMMMMMMms:`
-+shmNMMMNmdy+:`
Now attempting installation...
Looking for a previous installation of SDKMAN...
Looking for unzip...
Looking for zip...
Looking for curl...
Looking for sed...
Installing SDKMAN scripts...
Create distribution directories...
Getting available candidates...
Prime the config file...
Download script archive...
######################################################################## 100.0%
Extract script archive...
Install scripts...
Set version to 5.7.4+362 ...
Attempt update of interactive bash profile on regular UNIX...
Added sdkman init snippet to /c/Users/gary.fu/.bashrc
Attempt update of zsh profile...
Updated existing /c/Users/gary.fu/.zshrc
All done!
Please open a new terminal, or run the following in the existing one:
source "/c/Users/gary.fu/.sdkman/bin/sdkman-init.sh"
Then issue the following command:
sdk help
Enjoy!!!
现在重新打开一个Git Bash或者执行下面的命令就可以把sdkman加入到PATH中,然后就可以使用sdk命令了
source "$HOME/.sdkman/bin/sdkman-init.sh"
使用sdk version可以查看到sdk的版本了
sdk version
SDKMAN基本使用
安装完成之后就可以使用sdk命令,安装和配置sdk了。
查看帮助:
$ sdk help
Usage: sdk <command> [candidate] [version]
sdk offline <enable|disable>
commands:
install or i <candidate> [version] [local-path]
uninstall or rm <candidate> <version>
list or ls [candidate]
use or u <candidate> <version>
default or d <candidate> [version]
current or c [candidate]
upgrade or ug [candidate]
version or v
broadcast or b
help or h
offline [enable|disable]
selfupdate [force]
update
flush <broadcast|archives|temp>
candidate : the SDK to install: groovy, scala, grails, gradle, kotlin, etc.
use list command for comprehensive list of candidates
eg: $ sdk list
version : where optional, defaults to latest stable if not provided
eg: $ sdk install groovy
local-path : optional path to an existing local installation
使用sdk安装maven
$ sdk ls maven
================================================================================
Available Maven Versions
================================================================================
* 3.6.3
3.6.2
3.6.1
3.6.0
3.5.4
3.5.3
3.5.2
3.5.0
3.3.9
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
$ sdk install maven 3.6.3
Downloading: maven 3.6.3
In progress...
######################################################################## 100.0%
Installing: maven 3.6.3
Done installing!
Setting maven 3.6.3 as default.
$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: C:Usersgary.fu.sdkmancandidatesmavencurrent
Java version: 11.0.3, vendor: Amazon.com Inc., runtime: C:softsJavajdk11.0.3_7
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"