sbt

A 4-post collection

解决SBT运行时提示java.lang.OutOfMemoryError: PermGen space的问题

最近用sbt测试Spark的HiveContext总是出现java.lang.OutOfMemoryError: PermGen space的异常。 PermGen space是Java中常见的问题,进程堆的永久区空间不足了,一般直接配置-XX:MaxPermSize=256M就可以了。 但是sbt会把他当做自己的参数处理,我们运行sbt时这么做就可以了:sbt -J-XX:MaxPermSize=512M

IDEA下查看jar包的依赖关系(依赖树)

最近使用IDEA开发Spark应用,由于提交应用时需要将Spark之外的依赖包指定好,用于将代码提交到集群中,比如我们用到了spray-can这个包,这个包还依赖其他的包,提交时需要将所有的依赖的包都添加上才能正常运行。 使用SBT或MAVEN管理lib依赖时,从包上很难看出依赖关系: 这样的话,我们手动确定依赖关系就太麻烦了,好在解决方案还是有的。 SBT下查看lib依赖关系 如果你的项目使用的是sbt管理依赖的,那么而是用这个sbt-dependency-graph插件来确定依赖关系: https://github.com/jrudolph/sbt-dependency-graph 我们直接根据How to use的说明配置一下就好了,注意是全局的配置,如果对应的文件或目录不存在手动创建即可。 使用dependency-graph查看的结果如下: 更多的使用说明看下官方文档就好了

SBT设置全局Maven库的位置

进入sbt本地目录~/.sbt 添加文件repositories 内容如下: [repositories] local osc: http://maven.oschina.net/content/groups/public/ typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_
sbt

使用SBT构建Scala项目

sbt可是说是scala下的maven,用来构建项目甚是方便。 sbt使用Ivy管理包依赖,依赖的包会从maven中央库中下载,当然也可以指定特定的中央库。 sbt相比maven有一定的学习成本,但是他支持scala定义任务,而且描述项目信息比maven简单很多,支持增量式编译和交互式操作,所以还是非常值得学习一下的。 sbt的一些常用命令: clean 删除target目录中所有自动生成的文件 compile 编译main目录(src/main/scala, src/main/java)中的源文件 test 编译并执行测试用例 console 打开一个scala解释器,