经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Scala » 查看文章
学习sbtenv
来源:cnblogs  作者:辵鵵  时间:2018/9/25 20:28:29  对本文有异议


背景

最近由于工作需要, 我总是在不同的scala项目间流动开发. 这就遇到一个很棘手的问题, 这几个项目用的sbt版本不一致, 老项目用的是 sbt 0.13.15, 新项目用的是 sbt 1.0.2. 写scala项目最要命的可能就是高版本总是不兼容低版本.

一开始着急干活, 就很暴力的卸载了老版本, 安装需要的sbt版本. 但是当一天当中都需要处理两个项目的时候, 这种切换版本的方式就好浪费生命. 起初我是想自己写个shell来实现自动版本切换的, 但一想估计有人遇到过我这问题, 各种搜索后(我已然忘记了我是怎么搜的了), 发现了这个很好用的工具 sbtenv.

sbtenv 是什么

官网给了个定义: Groom your sbt environment.
本质sbtenv干的事情就像nvm, sbtenv能很轻松的切换sbt版本, 这样就可以不同的项目用不同版本的sbt, 同时本机上可以装多个版本的sbt.

sbtenv 安装

使用brew安装sbtenv很方便的, 具体步骤如下:

  1. 安装

    1. brew install sbtenv
  2. 添加 ~/.sbtenv/bin 到 $PATH

    1. echo 'export PATH="${HOME}/.sbtenv/bin:${PATH}"' >> ~/.bash_profile
  3. 添加 sbtenv init 到 shell

    1. echo 'eval "$(sbtenv init -)"' >> ~/.bash_profile
  4. 重启shell, 检验sbtenv是否安装成功

    1. type sbtenv
    2. sbtenv is a shell function from /Users/qyf404/.bash_profile

用sbtenv安装不同版本的sbt

光把sbtenv安装了, 还不能工作呢, 还需要安装你需要的sbt.

  1. 使用命令sbtenv install -l查询能安装的sbt版本

    1. $> sbtenv install -l
    2. All available versions:
    3. sbt-0.13.15
    4. sbt-0.13.16
    5. sbt-0.13.17
    6. sbt-0.13.2
    7. sbt-0.13.5
    8. sbt-0.13.6
    9. sbt-0.13.7
    10. sbt-0.13.8
    11. sbt-0.13.9
    12. sbt-1.0.0
    13. sbt-1.0.1
    14. sbt-1.0.2
    15. sbt-1.0.3
    16. sbt-1.0.4
    17. sbt-1.1.0
    18. sbt-1.1.1
  2. 安装指定版本的sbt

    1. $> sbtenv install sbt-0.13.17
  3. 检查是否安装成功, 使用命令sbtenv versions能查看本机安装的所有sbt版本.

    1. $> sbtenv versions
    2. system
    3. sbt-0.13.17

用sbtenv切换不同版本的sbt

  1. 当前工作目录切换sbt版本使用命令sbtenv local sbt-0.13.17. (切换后会在当前目录增加一个.sbt-version的文件来记录使用的sbt版本)

    1. $> sbtenv local sbt-0.13.17
  2. 检查是否切换成功使用命令sbtenv version.

    1. $> sbtenv version
    2. sbt-sbt-0.13.17 (set by /Users/yfqi/.sbt-version)

进阶

手动安装sbt

有时候sbtenv install -l里面没有我们要安装的sbt版本, 这时我们可以采取手动安装的方式.

  1. github上找到我们要安装的版本.
  2. 下载tgz的压缩包, 比如我下的是 sbt-1.1.6.tgz.
  3. 创建存放目录

    1. $> mkdir -p ~/.sbtenv/versions/sbt-1.1.6
  4. 将下载的压缩包移到创建好的目录里

    1. $> mv ~/Downloads/sbt-1.1.6.tgz ~/.sbtenv/versions/sbt-1.1.6
  5. 解压并删除压缩包 (解压后sbt命令的磁盘路径应该是/Users/qyf404/.sbtenv/versions/sbt-1.1.6/sbt/bin)

    1. $> cd ~/.sbtenv/versions/sbt-1.1.6
    2. $> tar xf sbt-1.1.6.tgz && rm -f *.tgz
    3. $> ls
    4. sbt
  6. 检查是否安装成功

    1. $> sbtenv versions
    2. system
    3. sbt-0.13.17
    4. sbt-1.1.6

设置全局sbt版本

使用sbtenv global sbt-1.1.6可以设置全局的sbt版本.

sbt版本设置优先级

sbt版本设置生效的优先级依次是:

项目的设置 > 当前目录的设置 > 全局的设置

  • 项目的设置在文件./project/build.properties中配置.

    1. sbt.version=0.13.15
  • 当前目录的设置在文件./.sbt-version中配置

    1. sbt-0.13.17
  • 全局的设置在文件~/.sbtenv/version中设置

    1. sbt-1.1.6

参考

sbtenv github

日期:2018-06-20 作者:辵鵵

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号