IntelliJ不会获取生成的.class文件

时间:2017-09-01 12:56:49

标签: java maven intellij-idea compiler-construction annotation-processing

我已经实现了一个AnnotationProcessor来获取带有字符串参数的类注释。字符串参数是特定于域的语言中的表达式,注释处理器将使用该表达式来编译类文件。

我创建了一个小测试项目来试试这个。我看到的行为是:

  1. 我可以使用maven
  2. 成功构建项目
  3. 我可以从intellij
  4. 中成功运行该项目
  5. 尽管intellij中的项目为RUNNING,但生成的类在编辑器中无法识别("无法解析类' ...'"),而智能不会工作,或者。
  6. 我试图找到问题并找到:

    • 正在生成的类文件是在target / classes / package / name / KlassName.class中创建的(这是Filer :: createClassFile方法选择的位置,我已经预料到了这一点虽然去了一些单独的目录。

    • 如果我在注释处理过程中创建一个java源文件(使用Filer :: createSourceFile),那么intellij就没有问题。但是,我无法做到这一点,因为编译器是一个真正必须直接创建类的库。

    我对解决方案的外观有两个猜测:

    1. 这个问题可能源于intellij在编辑器窗口中进行类型检查时没有查看目标/类。
    2. 应该在单独的目录中生成类文件。如果是,那么解决这个问题的设置是什么?
    3. 我使用intellij IDEA 2016.2.1和intellij IDEA 2017.2 EAP重现了这个问题。

0 个答案:

没有答案