如何在Build.scala中设置sbt-proguard插件

时间:2015-01-19 16:58:47

标签: scala sbt scala-2.11 sbt-proguard

我想在我的项目中使用 sbt-proguard 插件,但我需要在 Build.scala 文件中进行设置。

我阅读了文档但是只有一个 build.sbt 文件的示例,在我的情况下不起作用。 我需要知道如何为Build.scala文件配置插件。

以下是回购的链接:https://github.com/sbt/sbt-proguard/blob/master/README.md#example

FYI 我正在使用scala.version = 2.11.4和sbt.version = 0.13.5

1 个答案:

答案 0 :(得分:1)

(注意:sbt目前建议使用multi-project build.sbt而不是build.scala。)

某些sbt插件使用脚本来测试自身,它在src/sbt-test下设置虚假构建。如果您找到一个,它可以包含有关如何设置插件的好样本。

sbt-proguard创建了一个名为akka的样本,据称是Akka项目使用的。

import sbt._
import sbt.Keys._
import com.typesafe.sbt.SbtProguard._

object SampleBuild extends Build {
  import ProguardKeys.{ mergeStrategies, merge, options }
  import ProguardOptions.keepMain
  import ProguardMerge.append

  lazy val proguardAkka = Project(
    id = "proguard-akka",
    base = file("."),
    settings = Defaults.defaultSettings ++ proguardSettings ++ Seq(
      scalaVersion := "2.10.1",
      libraryDependencies += "com.typesafe.akka" %% "akka-remote" % "2.1.2",
      merge in Proguard := true,
      mergeStrategies in Proguard += append("reference.conf"),
      options in Proguard += keepMain("A"),
      options in Proguard += keepMain("B"),
      options in Proguard += "-dontoptimize", // reduce time for proguard
      options in Proguard += ProguardConf.akka
    )
  )
}
object ProguardConf {
  val akka = ....
}