【发布时间】:2017-03-08 16:52:35
【问题描述】:
我目前正在 Intellij 15.0.6 中处理 Gradle 3.3 项目。
我正在使用Gradle APT plugin 将注释处理器添加到我的类路径中。
它在生成 Java 类文件时工作正常,但是我需要能够在构建目录的生成目录中等效的 resources 目录中生成 XML 源代码。
这是我目前的构建目录结构:
如您所见,它不包含 resources 目录,我怀疑这可能是导致此问题的原因。
我通过./gradlew assemble 运行注释处理器时收到的当前异常是:java.lang.IllegalArgumentException: Resource creation not supported in location CLASS_PATH
我在注释处理器中用于生成 xml 文件的代码:
FileObject source = processingEnv.getFiler()
.createResource(StandardLocation.CLASS_PATH, "", "ap-test-2.html");
注意:我只是使用了一个 HTML 扩展作为测试,XML 应该会产生相同的结果。
javax.tools.StandardLocation 也有其他输出位置:
SOURCE_OUTPUT 位置用于将 XML 放置在与生成的 Java 类相同的包中,在 src/apt/main 中。然而,这不是我想要的行为。我需要它们驻留在类路径中。
经过广泛研究,我没有发现在其他任何地方讨论过这个例外。
感谢任何帮助。感谢您阅读此问题。
【问题讨论】: