美文网首页
学习scalaenv

学习scalaenv

作者: 辵鵵 | 来源:发表于2018-06-20 16:13 被阅读24次

scala_logo.png

背景

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

如果你用的是IDE开发, 项目版本不同必不会给你带来问题, 因为IDE会帮你管理各个项目的scala版本.但是如果你用命令行去干一些事情, 就会发生版本的问题了.于是你就需要不停的安装卸载来切换scala版本.

我想这种切换版本的事情我应该不是第一个遇到到, 于是我各种搜索后(我已然忘记了我是怎么搜的了), 发现了这个很好用的工具 scalaenv.

scalaenv 是什么

scalaenv给了定义: Groom your app's Scala environment with scalaenv like rbenv :)
本质scalaenv干的事情就像rbenv, scalaenv能轻松的切换scala版本.

scalaenv 安装

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

  1. 安装

    $> brew install scalaenv
    
  2. 添加~/.scalaenv/bin 到 $PATH

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

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

    $>  type scalaenv
    scalaenv is a shell function from /Users/qyf404/.bash_profile
    

使用scalaenv安装不同的scala版本

光把scalaenv安装了, 还不能工作呢, 还需要安装你需要的scala版本.

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

    $> scalaenv install -l
    Available versions:
    

    我不清楚为什么我的机器敲这个命令后没有展示出可以安装的版本号. 但是如果我知道某个版本一定是有的, 也可以按照第二步成功安装scala的.

  2. 安装指定版本的scala

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

    $> scalaenv versions
    scala-2.11.8
    

用svalaenv切换不同的scala版本

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

    $> scalaenv local scala-2.11.8
    
  2. 检查是否切换成功使用命令scalaenv version.

    $> scalaenv version
    scala-2.11.8 (set by /tmp/.scala-version)
    

进阶

手动安装scala

像上面说的, 我使用命令scalaenv install -l看不到我要安装的scala版本, 这时可以采取手动安装的方式安装scala.

  1. 官网上找到要安装的版本.

  2. 下载tgz压缩包, 比如我下的 scala-2.12.6.tgz.

  3. 减压到~/.scalaenv/versions/目录. (减压后scala命令的磁盘路径应该是/Users/qyf404/.scalaenv/versions/scala-2.12.6/bin)

    $> tar xf scala-2.12.6.tgz -C ~/.scalaenv/versions/
    
  4. 检查是否安装成功

    $> scalaenv versions
    scala-2.11.8
    scala-2.12.6
    

设置全局scala版本

使用scalaenv global scala-2.11.8可以设置全局的scala版本.

scala版本设置优先级

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

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

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

    ...
    scalaVersion := "2.11.8"
    ...
    
  • 当前目录的设置在文件./.scala-version中配置

    scala-2.11.8
    
  • 全局的设置在文件~/.scalaenv/version中配置

    scala-2.11.8
    

参考

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

相关文章

  • 学习scalaenv

    背景 最近由于工作需要, 我总是在不同的scala项目间流动开发. 这就遇到一个很棘手的问题, 这几个项目用的sc...

  • 学习学习学习

    第三天了,连续三天,早上睁眼开始,看视频,做课件,连续作业,直到晚上十二点才睡觉。吃饭不规律,想起来就吃,感觉不饿...

  • 学习学习学习

    23岁的我,才真正明白,什么是学习,什么是努力,努力和不努力真的不同,就好比同样是一篇稿子,我用一周背下来,有的人...

  • 学习学习学习!

    妈妈总是让我学习,我只能用装当办法。 方法一: 方法二: 方法三: 方法四: ...

  • 学习学习学习

    001.今天看财富自由之路看了第二遍,而且看了一半,算是完成任务很开心。中间有想放弃的念头,坚持看完。眼睛痛,一直...

  • 学习学习学习

    马自达为什么坚持高压缩比自吸

  • 学习!学习!学习!

    学习的痛苦是暂时的 没有学到的痛苦是永恒的 因为学习而特别充实的一天 很踏实 ~~~~ 2015.11.28.阴天...

  • 学习!学习!学习!

    无数次想要去逃离,可这封闭的世界根本出不去。你没有什么可以抛弃、只能咬着牙带着面具微笑的活下去。 没有那个人、他也...

  • 学习学习学习!

    昨天和今天两个上午,都在学习新媒体运营,学习的过程中心里只有一个想法:这也太套路,太功利了吧。可真应了那句话...

  • 学习,学习,学习!

    近期学习重点有两个方面,一方面是把上一个阶段定下任务的几本书读完,并在读的过程中有输出和转化,让阅读和学习真正能有...

网友评论

      本文标题:学习scalaenv

      本文链接:https://www.haomeiwen.com/subject/ntexyftx.html