背景
我正在编写一个程序,它将在 java 源代码目录中对成员和函数进行一些批量重命名,以根据传入程序的查找表 .csv 文件对代码进行去混淆处理。
这是为了我的源代码是针对一个混淆的 jar 编写的。我有一个通过自定义版本RetroGaurd运行的 jar 的去混淆版本,我想解析传递给 RetroGaurd 的映射文件,以去混淆我的源代码对 jar 的函数调用。如果我只是编译我的代码并在反编译时也通过 RetroGaurd 运行它,我会丢失所有漂亮的注释和格式(除非我错过了 RetroGaurd 上的一个选项)。
问题
我发现了Eclipse 内置的抽象语法树解析器,它看起来非常适合我的使用,但是我不打算将我的程序编写为 Eclipse 的插件,这将是一个可以在任何机器上运行的独立 jar .
我主要担心的是,当我编写代码时,我对 Eclipse 使用的内部 jar 有很多依赖。我知道,如果我符合库 jar 的EPL,我将不会有分发它的问题,但我担心这个项目在我编写它时会变得越来越大,因为需要越来越多的来自 Eclipse 的 SDK 的 jar。
是否有任何其他项目可以让我能够解析 Java 源代码以像 AST 一样可靠地查找和替换,或者有没有办法使用 RetroGaurd(或类似的程序)来运行相同的去混淆,但保持我的评论和功能相同,而无需在之后通过反编译器运行去混淆的程序?