java - 如何在不同项目中使用库的注释处理器中定义的注释?
问题描述
以下是我的注释定义,
@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?
解决方案
推荐阅读
- spring-boot - 没有符合条件的 bean 类型 - Kotlin Spring boot
- regex - 如何使用正则表达式和记事本 ++ 中的替换对话框复制和粘贴选定的文本?
- google-apps-script - 使用循环复制到新工作表后,获取工作表名称无法正常工作或无法自动更新
- google-apps-script - 如何制作一个忽略已用油漆桶填充的奇数单元格的条件格式的谷歌电子表格公式?
- awk - 在 awk 中处理之前向当前记录添加一个字段
- php - 同时或同时将 lastInsertId 从一个表插入到另一个表的可能方法
- javascript - 命令完成时间过长
- android - bundle.js 文件在文件已经在 pwa 的缓存中后被删除
- c - 查找两个用户输入数组的均值、众数和中位数的 C 代码
- python - python yield/send如何做re-entry