我们用play 2.2.3开发了一个web应用程序,并想混淆它。我正在尝试使用sbt-保护插件。我把下面的行放到PROJECT_FOLDER/project/plugins.sbt文件中
addSbtPlugin("com.typesafe.sbt" % "sbt-proguard" % "0.2.2")并将下面的行放到PROJECT_FOLDER/build.sbt文件中
proguardSettings
ProguardKeys.options in Proguard ++= Seq("-dontnote", "-dontwarn", "-ignorewarnings")
ProguardKeys.options in Proguard += ProguardOptions.keepMain("Application")
inConfig(Proguard)(javaOptions in ProguardKeys.proguard := Seq("-Xmx2g"))我不确定当我在游戏控制台和插件网站上说proguard:proguard.的时候,是否在工作当我在播放控制台上编写proguard:proguard时,play给出了以下错误
[info] Reading program jar [/Users/kamil/DEVELOPMENT/play-2.2.3/repository/local/net.sf.ehcache/ehcache-core/2.6.6/jars/ehcache-core.jar] (filtered)
[info] Reading program jar [/Users/kamil/DEVELOPMENT/play-2.2.3/repository/cache/org.json/json/jars/json-20140107.jar] (filtered)
[info] Reading library jar [/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/jce.jar]
[info] Reading library jar [/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/rt.jar]
[error] Error: The output jar is empty. Did you specify the proper '-keep' options?
[trace] Stack trace suppressed: run last proguard:proguard for the full output.
[error] (proguard:proguard) Proguard failed with exit code [1]
[error] Total time: 35 s, completed 10.Tem.2014 09:45:23是否有人成功地使用了这个带有play框架的插件?
发布于 2016-10-25 19:04:54
在燃烧了几天的时间试图使sbt保护配置正确后,我放弃了,只是在构建项目之后使用了proguard。
我没有将混淆作为构建部分,而是打开了activator dist生成的zip文件,混淆了jar并以相同的名称返回到lib文件夹中。以下是如何做到这一点:
护卫可以自己跑。您只需从sourceforge下载tar文件,并使用配置文件运行jar,如下所示:
java -jar /path/to/proguard/lib/proguard.jar @CONF_FILE现在,对于配置文件,您需要指定:
因此,您的conf.pro文件应该喜欢这样的内容:
-injars /path/to/jar/project-version-sans-externalized.jar(!META-INF)
-outjars /path/to/obfuscated/jar.jar
-keepnames class com.example.ErrorHandler
-keepnames class com.example.ApplicationLoader
-keepnames class controllers.**
-keepclassmembernames class controllers.** {
<methods>;
}
-keeppackagenames controllers.**, router.**, views.**
-keep class router.** {*;}
-keepnames class router.** {*;}
-keepclassmembers class router.** {*;}
-keep class views.** {*;}
-keepnames class views.** {*;}
-keepclassmembers class views.** {*;}
-libraryjars /usr/lib/jvm/latest/jre/lib/rt.jar
-libraryjars /path/to/lib/library1.jar
-libraryjars /path/to/lib/library2.jar在混淆完成并将输出jar复制回其原来的dir和名称之后,您可以将项目拉回,您将得到一个模糊的播放项目!
编辑:
我真的推荐看护卫手册。它为不同的项目设置和框架提供了许多示例。
https://stackoverflow.com/questions/24670430
复制相似问题