使用Java的注释处理器生成测试源

问题描述 投票:0回答:1

我正在使用 java 注释处理器根据项目中的注释生成代码,并且运行良好。我正在使用

AbstractProcessor
,并像这样编写输出文件:

Filer filer = processingEnv.getFiler();
JavaFileObject sourceFile = filer.createSourceFile(fullyQualifiedName);
try (Writer writer = sourceFile.openWriter()) {
  javaFile.writeTo(writer);
}

这会在

build/generated/sources/annotationProcessor/java/main
中生成 java 文件,非常适合该用例。

现在我想添加更多代码生成,但是这次我想基于

src/main/java
生成代码以用于测试,因此生成的源应该位于:

build/generated/sources/annotationProcessor/java/test

我在

ProcessingEnvironment
AbstractProcessor
上没有看到任何选项来确定将生成的代码写入哪个源集。使用 Java 的注释处理器生成测试代码的预期方式是什么?

java annotations preprocessor annotation-processing
1个回答
0
投票

注释处理器将根据添加的依赖配置运行,并贡献到相应的生成源输出。根据您问题中的信息,您可能使用

annotationProcessor
配置进行此设置,例如

dependencies {
  annotationProcessor project(':my-processor')
}

相反,使用

testAnnotationProcessor
配置让处理器可以访问您的测试类,并写入测试输出:

dependencies {
  testAnnotationProcessor project(':my-processor')
}
© www.soinside.com 2019 - 2024. All rights reserved.