【问题标题】:Running processor gives duplicate classes warning运行处理器给出重复类警告
【发布时间】:2011-05-16 14:26:30
【问题描述】:

在选择了一些处理器的情况下运行javac 后,我得到了正确的源文件生成。不幸的是,每次我重新运行该过程时,我都会看到有关 duplicate class: com..... 的警告(正在处理一个)。

这不会导致 ant 任务失败,所以这不是一个真正的问题,但我很乐意摆脱该消息。我该怎么做?

我基本上是在跑步:

JavaFileObject jfo = environment.getFiler().createSourceFile(somepackage + "." + myType.getSimpleName() + "Generated", myType);
Writer writer = jfo.openWriter();
generateSomeOtherClass(writer, myTypeElement);
writer.close();

【问题讨论】:

    标签: java annotations compilation javac


    【解决方案1】:

    我想知道这是否与应该在 Java 7 中修复的 this bug in javac 有关?编译器在运行注解处理器之前会提前吐出错误,这最终使错误不是真正的错误,最终一切都会出现。

    我们实际上已经编写了一个自定义的 Ant 任务,它扩展了普通的 Ant javac 任务,覆盖了各种 log() 方法,并尝试在所有注释处理完成后消除可能是虚假的错误。我会发布代码,但坦率地说,它非常丑陋,我宁愿不把它释放到世界上......很多大而粗糙的正则表达式,而且非常脆弱......

    【讨论】:

      猜你喜欢
      • 2019-08-26
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 2019-10-23
      • 2018-08-17
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多