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

标签 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

仅供引用:我正在使用 scala.version=2.11.4 和 sbt.version=0.13.5

最佳答案

(注意: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 = ....
}

关于scala - 如何在 Build.scala 中设置 sbt-proguard 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28029849/

相关文章:

scala - 如何设计时钟驱动的多智能体模拟

debugging - 为什么在0.13.7中执行调试会因 "Could not find agent library jdwp:transport on the library path"而失败?

java - 如何将 web3j 库加载到 sbt 项目?

scala - 如何解决传递依赖版本冲突(scala/sbt)

java - 如何将不同的值传递给 scala 对象中的变量

scala - 在 Scala 宏中检测案例类

scala - 向 Scala 添加自定义编译时检查

scala - 使用特定于版本的 scala 编译器选项

java - 如果中间阶段发生故障,MapReduce 如何从错误中恢复

scala - scala 2.8 中从 String 到 Int 的隐式转换