Zyo*_*oma 7 obfuscation scala proguard sbt
我设法模糊了我的Scala代码,但我无法弄清楚如何针对sbt assembly逐步构建的jar文件运行模糊处理.或至少在proguard步骤中如何制作一个胖罐.我发现有一个injar关于proguard 的论据,但我不知道如何应用它build.sbt.有人可以指出我如何做到这一点.
UPD实际上,由Proguard构建的JAR只包含混淆的类,而不是Proguard忽略的那些类.
要对assembly先前由任务构建的jar文件运行Proguard模糊处理,您应该覆盖inputsbuild.sbt中的设置:
proguardInputs in Proguard := Seq((assemblyOutputPath in assembly).value)
Run Code Online (Sandbox Code Playgroud)
这会将你的胖罐指定为Proguard的单个输入.您也可能想要修改用于混淆的输入库.以下是如何排除所有库的示例:
proguardLibraries in Proguard := Seq()
Run Code Online (Sandbox Code Playgroud)
最后禁用输入过滤器,因为您只有一个类源:
proguardInputFilter in Proguard := { file => None }
Run Code Online (Sandbox Code Playgroud)
上面的设置是必需的,因为Proguard META-INF/MANIFEST.MF默认会排除文件.由于assembly任务已执行此步骤,因此不再需要合并步骤:
proguardMerge in Proguard := false
Run Code Online (Sandbox Code Playgroud)
最后assembly为您的Proguard任务添加依赖项:
(ProguardKeys.proguard in Proguard) <<= (ProguardKeys.proguard in Proguard).dependsOn(assembly)
Run Code Online (Sandbox Code Playgroud)