使用 Proguard 在 dist 上混淆 Play 2 Web 应用程序?

Posted

技术标签:

【中文标题】使用 Proguard 在 dist 上混淆 Play 2 Web 应用程序?【英文标题】:Obfuscating Play 2 web app on dist with Proguard? 【发布时间】:2014-05-04 01:53:37 【问题描述】:

如何在执行play state|dist 命令时自动混淆 Play Framework Web 应用?

想法是使用Proguard来进行Java代码混淆。

有一些 SBT 插件,例如 sbt-proguard 和 xsbt-proguard-plugin,但我不确定是否可以直接将它们与 Play 2 集成。

请指教。

【问题讨论】:

【参考方案1】:

我不知道这对于 Play Framework 2.0.x 是否可行,但可以从 2.2.0 开始。

您可以按照here 给出的步骤进行操作。所有步骤都非常简单。但是,您需要知道所需文件的位置:

plugins.sbt - 您可以在 PLAY_HOME/framework/project/plugins.sbt 中找到它 build.sbt - 您可以在应用程序根文件夹中找到它。此文件仅适用于 Play 2.2.0 及更高版本。

这些步骤应该足以将插件与 Play 集成

希望对你有所帮助。

【讨论】:

我相信这不是那么简单,因为我们需要保持配置和类名的一致性。关于如何解决这个问题的任何想法?我们需要一些 -keep 规则吗?哪个?此外,当我调用 dist 命令时,没有使用 proguard。我尝试在 dist 文件夹中使用生成的 proguard jar,但由于引用不一致,它没有工作。 有没有关于这个主题的清晰明了的教程?

以上是关于使用 Proguard 在 dist 上混淆 Play 2 Web 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

使用 ProGuard 混淆 clojure uberjars

在Eclipse上打包并使用Proguard工具混淆jar包

Spring boot使用ProGuard实现代码混淆

Proguard 混淆在使用 Maven 的 Jenkins 构建中失败 - 无法读取 classes.jar

使用 ProGuard 进行文件混淆

使用 ProGuard 混淆私有字段