我如何混淆 Java 外部 GWT 开发的源代码?

How can I obfuscate Java source code for external GWT development?

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

除上述所有评论和所有 Javadoc 外,还可以删除(每个文件顶部仍需要许可证),我将单独生成 Javadoc。

我还没有找到一种可以确保在多个平台上执行的 gradle 构建脚本中可以很好地工作的方法。一些非常古老且不再维护的解决方案可能无法使用 Java 增强功能,例如菱形运算符和 lambda。

是否有任何关于如何执行此操作的建议?

请注意,这里还有很多类似的问题没有得到解答。其中之一:GWT Java Obfuscation

今天似乎没有可用的内容:

  1. 开始时用于Java 源代码混淆的工具很少。
  2. 其中一些不是免费的,就是不是 Java 基于的。
  3. 保留的源代码(格式化)工具的自定义程度不足以删除所有注释,而是将 GWT "JSNI" 代码保留在(GWT 将 Java 脚本代码嵌入 [=24= 的方式] 在 "native" 方法的特殊 /*-{ ... }-*/ 样式注释中。

最后,我自己写了一段简单的代码,它只去掉了所有的空格,但保留了 JSNI 代码并且保持不变。它不会混淆方法变量或其他任何东西,但现在必须这样做。