以下是我的注释定义,
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.SOURCE)
public @interface ErrorMap {
String errorMapName();
String errorMapPackage() default "com.company.dp.exceptions";
String errorSetName() default "default";
ErrorSet[] includedSets() default {};
}
@Target({ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.SOURCE)
public @interface ErrorSet {
String name() default "default";
String path();
}
我有一个扩展AbstractProcessor的ErrorMapProcessor类
@Generated
@Slf4j
@SupportedAnnotationTypes("com.company.dp.exceptions.annotation.ErrorMap")
@SupportedSourceVersion(SourceVersion.RELEASE_11)
@AutoService(Processor.class)
public class ErrorMapProcessor extends AbstractProcessor {
//business logic
}
在我的 gradle 文件中添加了以下内容,
//Annotation Processor
implementation project(':AnnotationProcessor')
testAnnotationProcessor project(':AnnotationProcessor')
annotationProcessor project(':AnnotationProcessor')
我能够构建这个项目并将这个 jar 添加到另一个项目的类路径(build.gradle)中。在将 ErrorMapProcessor 添加到类路径后,我还可以在不同的项目中使用它生成的类。
但是即使在将框架 jar 添加到类路径之后,我也无法在新项目中使用@ErrorMap或@ErrorSet注释。如何为不同的项目启用 @ErrorMap 和 @ErrorSet?