如何对外部GWT开发的Java源代码进行模糊处理?

时间:2015-03-09 17:36:04

标签: java gwt obfuscation

大多数混淆都集中在字节码上。我必须提供源代码,因为这是外部开发人员需要运行的GWT编译器。在发布源代码之前,我需要稍微清理一下:

  • 混淆方法变量名称
  • 模糊私有方法参数名称
  • 删除除每个文件顶部的许可证之外的所有非Javadoc注释。
  • 删除有关私有方法或最终类的受保护方法的所有Javadoc注释。
  • 删除某些Javadoc标记,例如@author
  • 删除某些其他评论标记,例如TODO,FIXME等。
  • 删除对私有类的所有@see引用
  • 删除所有空格

除了以上所有注释之外,所有Javadoc都可以删除(每个文件顶部仍需要许可证),并且我会单独生成Javadoc。

我还没有找到一种可以确保在多个平台上执行的gradle构建脚本中运行良好的方法。一些非常陈旧且不再维护的解决方案可能在使用Java增强功能时遇到问题,例如钻石操作符和lambdas。

对于我如何做到这一点有什么建议吗?

请注意,这里有很多这样的问题没有答案。其中之一:GWT Java Obfuscation

1 个答案:

答案 0 :(得分:1)

今天似乎没有任何东西可用:

  1. 开始使用Java源代码混淆的工具非常少。
  2. 其中一些要么不是免费的,要么不是基于Java的。
  3. 剩余的源代码(格式化)工具不能自定义,无法删除所有注释,但留下GWT" JSNI" (GWT'将JavaScript代码嵌入Java中的特殊/ * - {...} - * /样式注释" native"方法。
  4. 最后,我自己编写了一段简单的代码,只删除了所有的空格,但保留了JSNI代码。它不会混淆方法变量或其他任何东西,但它现在必须要做。