注释处理工具将代码添加到现有类

时间:2016-02-08 15:14:07

标签: java apt

我的目标是使用注释为现有类添加一些源代码。

首先,我创建了一个注释,然后我实现了一个AbstractProcessor类。 之后,我创建了javax.annotation.processing.Processor文件,并使用export eclipse选项生成JAR文件。

javax.annotation.processing.Processor file

当我在其他项目中使用我的jar时出现以下错误:

Internal compiler error: java.lang.NoClassDefFoundError: com/sun/source/util/Trees at org.xxx.preprocessor.ActionProcessor.init(ActionProcessor.java:44)

上面提到的一行就像加入的图片一样:

ActionProcessor.java:44

我想使用树来获取编译单元并将一些代码添加到我的注释函数中。

所以我第一次不知道如何解决这个问题,或者其他方法来解决这个问题。

1 个答案:

答案 0 :(得分:1)

您编写了一个基于Sun内部代码的AP工具,但是在Eclipse IDE中运行它。 Eclipse附带了自己的Java编译器,因此您无法再访问内部Java类。

我建议查看具有完全相同问题的Project Lombok并查看其解决方案。消息来源隐藏在" Contribute"链接:https://github.com/rzwitserloot/lombok

src/文件夹中有一个文件夹eclipseAgent/,可以帮助您入门。