我正在开发一个Eclipse插件,用于扫描和修改当前打开的Java项目的AST。
我想创建一个Java注释,它将在使用该插件的项目中显示为已知注释。注释的RetentionPolicy
将是SOURCE
(因此它被编译器丢弃),但插件将能够识别(使用AST)标记有此注释的方法并相应地处理它们
例如:
@SkipAnalysis
public void foo() {...}
这个注释将在遍历AST时由插件进行分析,但它对编译器没有任何价值。
我的插件如何为工作区中的打开项目提供注释?
答案 0 :(得分:0)
经过一些研究后发现,这是不可能的,因为注释(和其他类或接口)只能通过构建路径提供。 Eclipse插件可以更改构建路径,但不能将自己的源代码贡献给任何项目。
其中一种可能性是创建一个包含注释的库项目,然后使用该插件修改构建路径以将该库添加到构建路径的能力。但是,这很麻烦并且会为项目添加不必要的依赖项,如果库没有复制到项目的其他每个开发人员,可能会导致编译错误。例外情况是项目使用构建自动化系统(如Maven或Gradle),并且库存储在公共存储库(如Maven Central)中,确保在每个IDE上导入项目的每个用户都将下载该库。再次 - 可能,但很麻烦。