我已经实现了一个AnnotationProcessor来获取带有字符串参数的类注释。字符串参数是特定于域的语言中的表达式,注释处理器将使用该表达式来编译类文件。
我创建了一个小测试项目来试试这个。我看到的行为是:
我试图找到问题并找到:
正在生成的类文件是在target / classes / package / name / KlassName.class中创建的(这是Filer :: createClassFile方法选择的位置,我已经预料到了这一点虽然去了一些单独的目录。
如果我在注释处理过程中创建一个java源文件(使用Filer :: createSourceFile),那么intellij就没有问题。但是,我无法做到这一点,因为编译器是一个真正必须直接创建类的库。
我对解决方案的外观有两个猜测:
我使用intellij IDEA 2016.2.1和intellij IDEA 2017.2 EAP重现了这个问题。