一、使用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重新载入吧。