SDKMAN推荐一个好

Wesley13
• 阅读 789

是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面(CLI)和API来安装,切换,删除和列出sdk相关信息。以下是一些特性:

  • By Developers, for Developers
    安装SDK不再需要去各种下载页面去下载,解压,以及设置xxx_HOME或者PATH环境变量.
  • 多平台
    可以在任何基于UNIX的平台上运行:Mac OSX,Linux,Cygwin,Solaris和FreeBSD。 Powershell CLI版本适用于Windows用户。
  • 全套JAVA支持
    为Java,Groovy,Scala,Kotlin和Ceylon等JVM安装软件开发工具包。 Ant,Gradle,Grails,Maven,SBT,Spark,Spring Boot,Vert.x以及其他许多支持。
  • APIs
    使用开放的Broker REST API可以轻松地编写新的客户端。供应商可以通过安全的供应商API发布自己的版本。
  • 轻量
    只需要有curl \ zip/unzip就可以在bash中通过命令使用.还可和ZSH一起使用.

1.安装

在终端中输入以下命令进行安装:

curl -s https://get.sdkman.io | bash

如果提示缺少zip或unzip,安装后再次执行上面的命令即可.

# 安装需要的组件,Ubuntu为例
$ apt install zip
$ apt install unzip

 等待片刻后即可安装完毕。

安装完成后,在终端中输入:

$ source "$HOME/.sdkman/bin/sdkman-init.sh"

输入以下命令查看安装情况:

$ sdk version
# 以下为输出
==== BROADCAST =================================================================
* 09/01/18: Gradle 4.5-rc-1 released on SDKMAN! #gradle
* 06/01/18: sbt 1.1.0 released on SDKMAN! #scala
* 20/12/17: Gradle 4.4.1 released on SDKMAN! #gradle
================================================================================

SDKMAN 5.6.0+287

 安装到自定义位置

SDKMAN的默认安装位置为:$HOME/.sdkman.你可以通过设置SDKMAN_DIR环境变量来修改安装位置:

$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash

3.Beta通道

SDKMAN的Bate版,包含一些cli的新功能,但是可能会不稳定.如果需要使用Bate版本,需要修改~/.sdkman/etc/config文件:

sdkman_beta_channel=true

然后打开一个终端执行:

$ sdk selfupdate force

 如果不需要使用Bate版本了,将上面的配置修改为false,再执行一次更新即可.

4.卸载

SDKMAN!没有提供自动化的卸载方法,可以通过以下命令进行卸载:

tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
$ rm -rf ~/.sdkman

然后从.bashrc,.bash_profile和/或.profile文件中编辑和删除初始化代码片段。如果您使用ZSH,请将其从.zshrc文件中删除。要删除的代码片段如下所示:

#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! [[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"

5.使用

5.0 列出支持的软件

$ sdk list
# 执行命令后进入vi模式进行阅读,q退出阅读

5.1 列出软件的版本

$ sdk list gradle ================================================================================ Available Gradle Versions ================================================================================ 4.5-rc-1 4.2.1 3.1 2.11 > * 4.4.1 4.2-rc-2 3.0 2.10 4.4-rc-6 4.2-rc-1 2.9 2.1 4.4-rc-5 4.2 2.8 2.0 4.4-rc-4 4.1 2.7 1.9 4.4-rc-3 4.0.2 2.6 1.8 4.4-rc-2 4.0.1 2.5 1.7 4.4-rc-1 4.0 2.4 1.6 4.4 3.5.1 2.3 1.5 4.3.1 3.5 2.2.1 1.4 4.3-rc-4 3.4.1 2.2 1.3 4.3-rc-3 3.4 2.14.1 1.2 4.3-rc-2 3.3 2.14 1.12 4.3-rc-1 3.2.1 2.13 1.11 4.3 3.2 2.12 1.10 ================================================================================ + - local version * - installed > - currently in use ================================================================================

 5.3 安装指定版本软件

# 后面跟上版本号即可
$ sdk install gradle 4.4.1

5.4 安装本地包

$ sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT

5.8 查看当前使用的版本

$ sdk current java
  Using java version 8u111

#查看所有本地包的当前版本
$ sdk current
  Using:
  groovy: 2.4.7
  java: 8u111
  scala: 2.12.1

5.9 sdk版本升级

$ sdk upgrade springboot
  Upgrade:
  springboot (1.2.4.RELEASE, 1.2.3.RELEASE < 1.2.5.RELEASE)

# 本地所有sdk全部升级
$ sdk upgrade
  Upgrade:
  gradle (2.3, 1.11, 2.4, 2.5 < 2.6)
  grails (2.5.1 < 3.0.4)
  springboot (1.2.4.RELEASE, 1.2.3.RELEASE < 1.2.5.RELEASE)

5.10 离线模式

$ sdk offline enable
  Forced offline mode enabled.

$ sdk offline disable
  Online mode re-enabled!

当电脑没有网的时候,离线模式会进行自动切换.

5.11 SDKMAN!版本升级

$ sdk selfupdate

# 强制重新安装
$ sdk selfupdate force
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
2星期前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
6个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这