SBTでJavaソースのコンパイルオプションを指定する

SBTはプロジェクト内にJavaソースが混在しても一緒にコンパイルすることができます。
Javaコンパイラにオプションを指定するには以下のようにjavaCompileOptionsをオーバーライドすればいいようです。

override def javaCompileOptions = super.javaCompileOptions ++
  Seq("-source", "1.5","-encoding", "utf8").map(x => JavaCompileOption(x))

機能的には充分ですが、Mavenと比べるとちょっと原始的な感じがしますね。

SBTでMavenリポジトリを追加する

SBTはApache Ivyベースとのことで、当然のことながらMavenリポジトリからJARを自動的にダウンロードする機能があります。以下のような感じでデフォルト以外のリポジトリを追加することができます。

import sbt._

class MyProject(info: ProjectInfo) extends DefaultWebProject(info) {
  // Mavenリポジトリを追加
  val jbossRepos = "JBoss Maven Repository" 
    at "http://repository.jboss.org/nexus/content/groups/public/"
  ...
}

ちなみにSBTでのMavenリポジトリのアクセス時にプロキシを通過しなければいけない場合はSBT起動時のjavaコマンドの引数でプロキシに関する情報を指定します。職場の開発環境ではこんな感じのsbt.batを使っています。

set SCRIPT_DIR=%~dp0
java -Dhttp.proxyHost=<プロキシのホスト名> ^
-Dhttp.proxyPort=<プロキシのポート番号> ^
-Dhttps.proxyHost=<プロキシのホスト名> ^
-Dhttps.proxyPort=<プロキシのポート番号> ^
-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xmx512M -Xss2M ^
-jar "%SCRIPT_DIR%\sbt-launch.jar" %*