SBTでライブラリのexcludes指定

使いたいライブラリやフレームワークの依存JARのうち、ビルド時には含めたくないものがある場合があります。Mavenでは以下のように該当の依存関係を示すdependencyタグの配下にexcludesタグを記述することで除外指定ができます。

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4.2</version>
  <exclusions>
    <exclusion>
      <groupId>javax.activation</groupId>
      <artifactId>activation</artifactId>
    </exclusion>
  </exclusions> 
</dependency>

SBTでは以下のようにIvyのXMLを直接XMLリテラルで記述することでこの指定を行うようです。なんだかいけてないですね。

override def ivyXML =
  <dependencies>
    <dependency org="javax.mail" name="mail" rev="1.4.2">
      <exclude module="activation"/>
    </dependency>
  </dependencies>

以下のように特定のライブラリに対してではなく、プロジェクト全体に対する除外指定を行うこともできます。

val jm = "javax.mail" % "mail" % "1.4.2"

override def ivyXML =
  <dependencies>
    <exclude module="activation"/>
  </dependencies>