• sdkman 的安装配置与 sdk 管理


    sdkman 的安装配置与 sdk 管理

    记录一下项目使用的工具,目前环境的管理有以下几个:

    • sdkman
    • pyenv
    • nvm

    这里主要讲一下 sdkman,我们项目是通过 sdkman 进行 java 和 maven 的管理,这个写的挺简单的,加上一个自己写的自己偶尔会用的脚本,查看当前所有安装版本的话,感觉加到 .zshrc 之类的 profile 里会比较方便一点。

    安装

    目前看着感觉就是 sdk 只支持 unix 的环境,即 macOS, Linux 和 Windows (with WSL),反正官方文档上是没看到说能够直接在 win 环境下安装……

    安装方式也很简单:

    $ curl -s "https://get.sdkman.io" | bash
    $ source "$HOME/.sdkman/bin/sdkman-init.sh"
    $ sdk version
    
    • 1
    • 2
    • 3

    运行完后能看到正确的 sdk version 就算试运行成功了,比如说我这里:

    ❯ sdk version
    
    SDKMAN 5.16.0
    
    • 1
    • 2
    • 3

    按照他们说的方法安装真的很简单……

    使用

    我们这里主要用 sdkman 管理 java 和 maven,不过它支持的管理版本有:

    在这里插入图片描述

    以及其他,https://sdkman.io/sdks 建议还是到官方文档上去 ctrl+f 一下

    安装

    这里以 java 为主,目前来说好像没办法直接指定 java 版本进行安装,比如说:

    ❯ sdk install java@17
    
    Stop! java@17 is not a valid candidate.
    ❯ sdk install java17
    
    Stop! java17 is not a valid candidate.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这里安装还是需要指定具体的安装版本:

    ❯ sdk list java
    # 注意这里声明了安装 java + 版本
    ❯ sdk install java 17.0.8.1-ms
    
    Downloading: java 17.0.8.1-ms
    
    In progress...
    
    ######################################################################### 100.0%
    
    Repackaging Java 17.0.8.1-ms...
    
    Done repackaging...
    Cleaning up residual files...
    
    Installing: java 17.0.8.1-ms
    Done installing!
    
    Do you want java 17.0.8.1-ms to be set as default? (Y/n): n
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    查看当前版本

    这个应该是会 recursively 查看所有当前使用的版本:

    ❯ sdk current
    
    Using:
    
    java: 11.0.16-ms
    maven: 3.6.3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    查看版本

    sdkman 到现在居然都没有这个功能……我好难过……这个讨论在 ‘list installed’ command? #466 这个 thread 里。

    有一位大兄弟说用这个指令:

    ❯ sdk offline enable && sdk list java && sdk offline disable
    Offline mode enabled.
    --------------------------------------------------------------------------------
    Offline: only showing installed java versions
    --------------------------------------------------------------------------------
     * 17.0.4.1-ms
     > 11.0.16-ms
    --------------------------------------------------------------------------------
    * - installed
    > - currently in use
    --------------------------------------------------------------------------------
    Online mode re-enabled!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    我试了一下,好像没有能够把我的所有版本全都列出来。

    我自己的做法是:

    ls ~/.sdkman/candidates/* | grep -v "current"
    /Users/username/.sdkman/candidates/java:
    11.0.16-ms
    17.0.4.1-ms
    17.0.8.1-ms
    
    /Users/username/.sdkman/candidates/maven:
    3.6.3
    
    /Users/username/.sdkman/candidates/tomcat:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    如果想要 java 的话就把 * 换成 java 就行了:

    ls ~/.sdkman/candidates/java | grep -v "current"
    11.0.16-ms
    17.0.4.1-ms
    17.0.8.1-ms
    
    • 1
    • 2
    • 3
    • 4

    我是觉得我真的应该学一下终端了……

    卸载

    突然发现已经装过 java17 了,就打算移除一个 java17,顺便试试看操作

    ❯ sdk uninstall java 17.0.4.1-ms
    
    Uninstalling java 17.0.4.1-ms...
    ❯ ls ~/.sdkman/candidates/java | grep -v "current"
    11.0.16-ms
    17.0.8.1-ms
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    反正挺快的,也挺方便的…… 0。0

  • 相关阅读:
    Telerik2022 R2,有效的自动化测试
    RabbitMQ 心跳
    docker
    Java保存数据同时支持 泰文,Emoji火星文
    Matplotlib的使用方法
    【LeetCode: 260. 只出现一次的数字 III | 位运算 | 哈希表】
    四、Ribbon负载均衡
    qt 调用qt_material库后自定义进度条样式
    GO微服务实战第一节 为什么说云原生重构了互联网产品开发模式?
    黑灰产眼中的NFT:平台嗷嗷待宰,用户送钱上门
  • 原文地址:https://blog.csdn.net/weixin_42938619/article/details/132798597