问题标签 [annotation-processor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2147 浏览

android - 在构建发布版本时,compileReleaseJavaWithJavaC 反应原生模块失败

任务:react-native-device-info:compileReleaseJavaWithJavac FAILED

FAILURE:构建失败并出现异常。

  • 出了什么问题:任务':react-native-device-info:compileReleaseJavaWithJavac'执行失败。

    java.io.FileNotFoundException:/workspace/eos-native/node_modules/react-native-device-info/android/build/intermediates/annotation_processor_list/release/annotationProcessors.json(没有这样的文件或目录)

错误是有道理的,文件不存在,但我不知道为什么它不存在?它是在我运行应用程序的调试版本和我的库、react-native-device-info、react-orientation-locker 等的调试版本时创建的。我已经清理、同步、重建等,但是在尝试组装或安装发布版本我会在几秒钟内收到此错误。是什么导致Java

0 投票
2 回答
740 浏览

java - 创建自定义注释时,AnnotationProcessor vs ConstraintValidator 有什么用

我需要创建一个自定义注释,当应用于方法时,它会针对各种检查检查并验证输入参数(原始和非原始)。如果检查失败,则应直接返回错误消息。

在搜索时,我在创建自定义注释时遇到了 AbstractProcessor 和 ConstraintValidator 的使用。作为创建自定义注释的新手,我想了解如何继续实施我的问题陈述。

0 投票
1 回答
48 浏览

java - spring-boot-configuration-processor 依赖仅用于 IDE 支持吗?

我只是想知道正式的spring-boot-configuration-processor依赖是什么。

我在依赖项中使用它,这些依赖项在微服务中使用,我希望自动完成以管理我的配置。我可以在 Spring Tool Suite 自动完成中看到结果,它工作正常,而且很有用。

不过,我想知道该依赖项是否还有其他实用程序。我可以想象仪表板或 Spring Boot Admin 之类的用法,可以在其中编辑配置并提供帮助。

提前致谢

0 投票
1 回答
536 浏览

java - java编译器注释处理器选项未正确传递

我正在编写一个 java 注释处理器来从代码体中的注释中收集元数据。我希望输出文件以 maven 项目版本开头。查看 Oracle java 8的javac 文档,看来我应该能够使用符号将项目版本作为选项传递给注释处理器-A key=value。所以我配置了 maven-compiler-plugin 以将core.versionId选项设置为项目版本,如下所示:

但是,当我编译时,我收到以下错误:

似乎 project.version 已正确插入,但编译器未能像宣传的那样处理 -A 选项。我一定遗漏了一些东西,但我看不到它是什么,而且我找不到提到这个问题。非常感谢任何帮助。

更新:如果我删除空间,错误就会消失,使 arg be -Acore.versionId=${project.version},但在这种情况下 core.versionId 选项不会出现在注释处理器中。

0 投票
1 回答
413 浏览

java - 在 javax.annotation.processing.Processor 中获取 VariableElement 的封闭类名

我刚刚开始学习 Java 中的注释处理。我有@MyAnnotation哪些目标ElementType.FIELD,我Processor将注释限制为只允许非空唯一value。哪个工作正常。

在记录错误以防有一些重复value设置为 时MyAnnotation.value,我想提供源代码中现有注释和新重复注释的完整路径。

我的注释:

示例父类。

我的注释处理器

但是,我无法弄清楚如何从VariableElement. 由于我才刚刚开始,AnnotationProcessing我什至不确定这是否可行,而且我无法在 StackOverflow 或其他任何地方找到与此问题相关的任何问题。

预期的错误输出

注意:我意识到如果我定义一个新的 Annotation 并设置为 Enclosure 类,我可以获得父信息ElementType.TYPE,但我希望避免这种情况,因为它为第三方开发人员增加了额外的责任。

0 投票
1 回答
302 浏览

java - 错误:包生成的.schema 不存在

在我的 Android 应用程序中,我有一个注释处理器,它使用生成的文件JavaPoet并将它们放在包 generate.schema 下。

文件生成正确。每当我像这样使用生成的文件时

我收到以下错误:

但是如果我包含完全限定的类名而不是像这样导入

代码编译并运行没有任何错误。

我不想在每次使用GeneratedFile. 我不确定我做错了什么,因为我仍在学习使用Annotation Processor

其他库(包括 Realm、DataBinding)生成的文件都按预期正常工作。

文件生成:

使用 JavaPoet 我运行以下代码。

  • NamespaceCreator.generateClassPackage(element)class返回ie的包名generated.schema
0 投票
0 回答
151 浏览

java - javapoet如何处理annotate属性值的AnnotationValue

使用 AbstractProcessor 获取自定义注解的方法 获取注解的属性名称和值 属性值是 AnnotationValue 类型 使用 javapoet AnnotationSpec.Builder(xx) 生成代码。AddMember(String name, String format, Object... args) 生成错误代码: 如:method (@AnnotationName(value = "/" v1 / "/v2"/")) Method (@annotationname (value= {"v1","v2"})) 既然有好几种注解属性类型,那么如何分辨AnnotationValue是哪一个,用javapoet生成正确的代码

这是javapoet当前生成的错误代码:

0 投票
1 回答
159 浏览

java - 是否可以在java中的构建时添加注释?

我正在寻找一种在构建期间将注释添加到字段的方法。是否可以在构建期间修改“.class”文件内容?就我而言,

我有不同的客户代码库。有的客户只需要注释x字段,有的只需要注释y。所以我正在寻找在构建时添加注释。

0 投票
3 回答
2673 浏览

java - Dagger 找不到其他注解处理器生成的类

我编写了一个简单的注释处理器(只是为了好玩),它将生成一些我在以前的项目中编写的样板代码。它实际上通过收集 Activity 类上的注释来生成如下所示的模块

但是,当我使用 dagger 运行它时,dagger 似乎无法找到由我的注释处理器生成的类。虽然类已生成并存在于生成的目录中,但我可以在我的源代码中使用它,但在编译时,dagger 会产生以下异常。有什么专家建议吗?

这是主要的应用程序组件。

ActivityInjectorModule类由注解处理器生成,存在于生成目录中。

应用类

如果我自己创建生成的类,一切都会完美运行。在编译时不知何故,当我的注释处理器生成时,dagger 无法找到该类。

在 Yuriy Kulikov 的回答之后,

尤里的回答

您可以看到生成的文件在同一个包中,但也使用完全限定名称引用。仍然匕首报告错误。

如果有人想进行实验,这里是github 存储库的链接

0 投票
1 回答
1748 浏览

java - Mapstruct 与 maven-pom 中的其他注释处理器一起

http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0

亲爱的大家,

我需要一些帮助来实施mapstruct我的project. 我已经有一些需要在pom.xmlmaven 中命名的注释处理器。 Mapstruct建议annotationProcessorPaths在 pom.xml 中添加。似乎不可能在同一个 pom.xml 中同时使用两个注释(annotationProcessorPaths和)。annotationProcessor如果我这样做,我会收到错误消息

无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default) on project yyy-data: Compilation failure [ERROR] Annotation processor 'de.zzz.annotation.processor.GenerateHibernateTypeForEnumProcessor'未找到

我确实缩短了pom。因此,可能存在比实际需要更多的依赖项。

提前感谢奥利弗