Freewind @ Thoughtworks scala java javascript dart 工具 编程实践 月结 math python english [comments admin] [feed]

(2011-09-13) 使用sbt时遇到的一些问题

广告: 云梯:翻墙vpn (省10元) 土行孙:科研用户翻墙http proxy (有优惠)

一、使用sbt时,经常出现PermSize不够用的错误,怎么办?

修改sbt的启动文件sbt.bat,增加启动参数:

-XX:MaxPermSize=256M```

二、scala文件中含有中文,编译正常;而java文件中有中文,编译提示错误(注:java文件为utf8,而系统字符集为gbk)**

在sbt下,输入debug命令,打开debug级的log,再次运行compile,发现它使用的scalac有utf8的选项,而javac没有,说明javac使用的是系统默认字符集。需要更改项目配置文件project/build/config.scala,在里面添加一行:

override def javaCompileOptions = super.javaCompileOptions ++ javaCompileOptions(“-encoding”, “utf8”)

三、 一个web项目,代码中引用了servlet的一些类,并且还要运行sbt的jetty-run,则需要要匹配文件中增加:

“org.mortbay.jetty” % “jetty” % “6.1.25” % “compile->default”, // 用于编译

“org.mortbay.jetty” % “jetty” % “6.1.25” % “test->default”, // 用于sbt的jetty-run

四、 lib_managed目录下的jar,有时候并不是最新的,即使使用了clean-lib和update。

最好的办法就是手动删除lib_managed下的所有文件,再重新update一下。然后再编译,运行。

4. 本地的jar放在lib目录下,可嵌套

5. 如果在一个项目中,定义多个子项目,简单的做法可在匹配文件中:

lazy val demo = project(“demo”, “Demo of ScalaEye”)

前面是目录名,后面是项目全名

6. 如果使用了jrebel插件,希望修改后热生效,不用重启jetty,可在config.scala中增加:

override def scanDirectories = Nil

但我在使用中,发现了一些问题(如css文件没有及时生效等问题),觉得还不如不用,直接让jetty重新载入吧。

comments powered by Disqus