基本环境:
背景:
sbt 之于scala 就像 maven 之于 java. 然而 sbt 在墙外,要想使用必须翻墙。实践证明,翻墙也不好使, maven 好歹能下载下来,而 sbt 直接就是下载失败,根本无法安装。最后只能曲线救国,在网络上找到通过sbt-launch 来启动sbt 的方法。其主要原理是通过修改 sbt-launch.jar 内部的 repositories 位置(改为国内阿里源)来间接改变sbt 仓库源,提高sbt 查找依赖的效率。下面介绍手动安装 sbt 详细过程。
解决:
1. 下载sbt-launch.jar,然后将源改为国内源(aliyun),我选择将sbt安装在/usr/local/sbt中
vim .bashrc
添加下面内容
export SBT_HOME=/usr/local/sbt
export PATH=$SBT_HOME:$SCALA_HOME/bin:$PATH
最后执行 source .bashrc
1) 生成目录结构, sbt 是插件话的思维,所有都是插件组成,所以核心的 sbt 没有自动生成目录结构的功能。网上有生成目录文件的插件,见 git: https://github.com/softprops/np 不过我觉得也没什么必要,直接自己生成就行了。可以按照下面的步骤生成。
$ touch build.sbt && echo "name := 'hello'\nversion := '1.0' " > build.sbt $ mkdir -p src/{main,test}/scala $ touch README.md && echo "new project" > README.md
上面的步骤是固定的,如果嫌麻烦的话,可以直接写一个shell 文件串联起来,在我们的 sbt 根目录下面新建 sbt-np(touch sbt-np) 文件,然后添加下面内容:
#!/bin/sh
dir=$(pwd)
cd -P ${dir}
set -ue
touch build.sbt
mkdir -p src/{main,test}/scala
touch README.md && echo "new project" > README.md
创建上面的 sbt-np(sbt new project) 脚本之后,我们可以 source .bashrc, 让环境变量重新索引下面的可执行文件。下次创建新项目直接执行下面命令即可:
mkdir your-project-name#创建根目录还是必须滴
sh sbt-np#创建子目录
2)进入sbt 模式,编译,打包我们的代码:
将我们新建的目录用你喜欢的IDE 打开,同时在项目根目录执行 sbt 进入命令行模式,执行交互式操作。常用操作:
sbt run #运行代码,多个main 会让你选择
sbt compile #编译代码
sbt package #打包成jar包
我们执行上面两步代码运行情况如下:
目录结构:
添加代码 vim src/main/scala/Test.scala
object Hi { def main(args: Array[String]) = println("Hi!") }
sbt run
1. unzip -q 选项是干什么的呢?
是静默解压的意思,就像 tar -zxf 不添加 v 选项一样,不把解压过程显示出来。
2. 如果使用idea 实际上已经自带了sbt 功能。推荐使用 IDEA, 打包文件
1. https://github.com/softprops/np
2. http://wiki.jikexueyuan.com/project/sbt-getting-started/install-sbt.html
3. https://www.2cto.com/kf/201612/575063.html
4. https://www.jianshu.com/p/9494aecebc8d
5. http://www.importnew.com/4311.html
6. https://blog.csdn.net/microsoft2014/article/details/54572502
7. http://www.powerxing.com/spark-quick-start-guide/
8. https://www.jianshu.com/p/c8c48b0b3866
9. http://maven.aliyun.com/nexus/#nexus-search;quick~sbt-launch