我们计划对项目进行混淆,但不想失去远程调试和热部署的功能。请问有没有相关工具可以实现这个需求?如果只是简单的混淆,比如重命名类、方法和变量,就足够了。[编辑] 我们使用的是Intellij IDEA,但没有找到适用于此任务的插件。
我们有相同的需求(简单混淆,需要后期调试),并且我们使用 ProGuard。它是一个Java应用程序,可以集成到Ant任务中。它可以做很多事情,但也是完全可调的。因此,您可以保持简单的混淆。其中一个选项是生成“符号对应表”,它允许您从混淆的代码中检索非混淆的代码。(它跟踪变量xyz在类qksdnqd中实际上是MeaningfulClassName类中的myCuteVarName)编辑:混淆可能会很棘手。一些例子: 您无法更改主方法的名称。 您是否使用类加载器?在混淆之后仍然能够检索类吗? 您的ORM映射如何?您的Spring上下文呢?(如果有) 编辑2: 您还可以查看: 您是否混淆商业Java代码?
请查看SD Java混淆器。它会剥离注释和空格,并重命名所有非公共成员/方法/类名。它还会为您提供代码混淆的映射,例如将每个符号FOO混淆为XYZ,一个映射FOO->XYZ。这意味着如果您得到一个回溯提到XYZ,您可以轻松确定原始符号FOO。当然,由于只有您(进行混淆的人)拥有此映射,因此只有您可以这样做。