我注意到当我将 xtend 从 1.20 更新到 2.0 时,.class 文件明显变大了。我看到的一个区别是 .class 文件中有我并不真正关心的调试信息。.class 文件中还有一个名为 SMAP 的附加条目。
我正在使用 MWE2 工作流程来生成 .class 文件。有没有办法禁用它?
您可以使用 javac 的参数进行编译以-g:none
不生成任何调试信息。这也应该防止生成源映射。
Xtend 2.x 被编译为 Java 源代码,其中 Xtend 1.x 是一种解释型语言。编译为 Java 的优点是运行时性能显着提高,并且与其他 JVM 语言无缝集成。为了允许调试 Xtend,SMAP 信息也被安装到字节码中。有了它,您可以选择是要调试生成的 Java 源代码还是直接调试 Xtend 代码。如果出于某种原因您专注于较小的类文件,您可能希望安装 Xtend 作为主要源信息。这将删除 Java 调试信息并仅保留一小部分 Xtend 调试信息。您可能还想从类文件中删除所有合成局部变量。检查您的 Eclipse 编译器设置Xtend -> compiler
。