若要对,是由assembly
任务之前建造你应该build.sbt覆盖inputs
设置一个jar文件中的Proguard的混淆:
ProguardKeys.inputs in Proguard := Seq(baseDirectory.value/"target"/s"scala-${scalaVersion.value.dropRight(2)}"/s"${name.value}-assembly-${version.value}.jar")
这说明你的脂肪罐子作为Proguard的单个输入。你也可能想要修改用于混淆的输入库。下面是如何排除所有图书馆的例子:
ProguardKeys.libraries in Proguard := Seq()
最后禁用输入滤波器,因为你只有一类来源:
ProguardKeys.inputFilter in Proguard := { file => None }
上述要求,因为Proguard的将排除META-INF/MANIFEST.MF
文件中的设置默认。
ProguardKeys.merge in Proguard := false
最后加assembly
依赖于你的Proguard的任务:此外,由于assembly
任务已经完成这一步一步合并不再需要
(ProguardKeys.proguard in Proguard) <<= (ProguardKeys.proguard in Proguard).dependsOn(assembly)
嗨@Zyoma,我无法使用SBT -proguard插件。 Sbt一直抱怨说它无法解决依赖关系。你是否必须添加一个解析器到你的build.sbt文件才能让proguard工作?谢谢。 – jithinpt
嗨@Zyoma,你用什么命令来制作混淆的jar? – jithinpt