Windows下安装SDKMAN

Windows下安装SDKMAN

SDKMAN(软件开发包管理器)可以对各种各样的二进制SDK包进行版本管理,包括Groovy和JDK等。

目前MacOS和Linux支持比较好,安装比较方便,不过对于Windows安装相对来讲有点麻烦。

Windows下安装选择

官网文档地址:https://sdkman.io/install

总体来讲,Windows下安装需要有Linux环境,官网提供三种在Windows下安装的方式:

  1. 安装Windows Linux Subsystem (WLS)和其他一些工具
  2. 安装Cygwin以及一些工具
  3. 安装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

安装基本安装默认选项即可

image
image

安装完成后,可以用开始菜单或者桌面的【Git Bash】图标开启Git Bash命令行工具。

image

安装其他工具

要sdkman能正常安装,需要安装一些其他工具,看信息提示主要有curl,unzip,zip和sed,由于Git Bash自带的MinGW是简单版本的,已经有部分软件已经安装上了

目前看curl,uzip,sed已经安装上了:

curl -V
unzip -v
sed --version
image

缺少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下mingw\bin目录下(根据自己的安装目录如:C:\softs\Git\mingw\bin,似乎放到usr\bin也可以)

安装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  [candidate] [version]
       sdk offline 

   commands:
       install   or i     [version] [local-path]
       uninstall or rm    
       list      or ls   [candidate]
       use       or u     
       default   or d     [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             

   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:\Users\gary.fu\.sdkman\candidates\maven\current
Java version: 11.0.3, vendor: Amazon.com Inc., runtime: C:\softs\Java\jdk11.0.3_7
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

你可能感兴趣的:(Windows下安装SDKMAN)