问题标签 [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 投票
1 回答
44 浏览

eclipse - lombok:找不到符号:使用 gradle 构建失败

我的设置是这样的。。

日食 2020-03,

毕业 6.3

龙目岛 1.18.12

依赖关系

失败的命令

./gradle build -x 测试

./gradlew build -x 测试

使用此设置构建程序时,我总是遇到找不到符号错误。

slf4j 标签看起来也不被 build.gradle 理解。

我应该尝试什么??那有什么问题??请帮我找出这个问题的原因..

0 投票
0 回答
238 浏览

java - 未调用自定义注释处理器 .process()

我正在尝试制作一个自定义注释处理器并且它没有被调用。虽然它是.init,但它似乎从未调用过.process。任何帮助将不胜感激!

版本:

  • 科特林(1.3.72)
  • JRE(11.0.7)
  • Maven(3.8.0)

这是我从控制台的输出:

注解:

注释处理器:

来自 pom.xml 的片段

META-INF/services/javax.annotation.processing.Processor 文件:

用于类:

0 投票
1 回答
510 浏览

java - Gradle:无法生成 QueryDSL 类

摇篮版本:5.1

Java 版本:11

我在gradle文件中定义了以下任务来生成QueryDSL类:

下面是我的依赖块:

如果我执行 `gradlew generateQClasses,我会在日志中看到以下内容:

它失败并显示文件已存在的错误。如果文件存在,我如何配置此任务以覆盖文件?

另外,上面的配置是根项目的配置,它有 5 个子项目。AnnotationProcessor能够覆盖其中一个子项目中的文件,但不能覆盖其他文件(所有子项目都具有相同的配置)。我错过了什么吗?

0 投票
1 回答
215 浏览

java - 如何从 Java 注释处理器中的局部变量中去除注释?

由于特定原因,我想使用 Checker Framework 及其子类型检查器。为了使这个检查器工作,我必须使用ElementType.TYPE_PARAMETERand ElementType.TYPE_USE。但是,我想在编译为类文件之前将它们从局部变量中删除。

例如,假设我有以下带有自定义@FirstName和的代码@LastName(两者都必须在类级别保留RetentionPolicy.CLASS):

但出于另一个原因,我想从“at”字节码级别的局部变量中删除注释,就好像源代码只是:

如果我了解它可以完成的方式,注释处理是一种方法。因此,如果这是正确的做法,那么我必须按以下顺序链接一些注释处理器:

  • org.checkerframework.common.subtyping.SubtypingChecker.
  • 我的自定义“删除局部变量注释”注释处理器;

好吧,深入研究javac工作原理对我来说是一个极大的挑战。到目前为止我已经实施的是:

如您所见,它没有按预期工作。

从局部变量中删除注释的正确方法是什么?我的意思是,我该如何实现它?javac如果可能的话,由于 Maven 构建集成的细节,我想坚持使用注释处理器。

0 投票
1 回答
88 浏览

javac - TreeMaker 如何编写返回空语句

喜欢这段代码

我想使用 treeMaker 编写return null语句,但我不知道该怎么做。

0 投票
1 回答
190 浏览

java - 自 androidX 升级以来,注释过程功能不起作用

我有一个项目运行良好。迁移到 androidX,之后我看到我的注释处理器不工作。

已经完成了此链接中提到的所有包更改:https ://developer.android.com/jetpack/androidx/migrate甚至使用了迁移工具。

遵循这个人提到的步骤:注释处理器不起作用 - 没有创建文件 健全性检查将符合上述要求:我尝试了常见的解决方案:

  • 从 Android Studio 最近删除我的项目
  • 使缓存无效并重新启动android studio
  • 再次将我的项目导入android studio(确保之前启用了注释处理)
  • 添加 > 应用插件:'kotlin-android'

按照这个人提到的步骤:为现有项目 Android Studio 3.3 启用注释处理

寻找注释处理的示例,但所有这些都是在 androidX 升级之前:

我确实注意到注释处理器的工作方式略有不同,我使用的是“kapt project(':xx')”而不是“annotationProcessor project(path:':xxx')”

任何建议我都认为这个问题是有效的,即使那里有很多内容找不到任何特定于 AndroidX 和注释处理器的东西,除了这个:迁移注释处理器到 androidX并没有回答这个问题,因为我已经完成了包更改?

在此处输入图像描述

0 投票
1 回答
234 浏览

gradle - 未找到gradle注释处理器'org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor'

构建.gradle

出了什么问题: 任务 ':event-sourcing:compileQuerydsl' 执行失败。

找不到注释处理器“org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor”

如何解决?

我们如何为 MongoAnnotationProcessor 编写自定义插件?

0 投票
1 回答
97 浏览

java - 为什么我不能注册自己的注释处理器?

看来,我无法注册自己的注释处理器。但是使用 Google 的 AutoService 确实注册了我的注释处理器。它工作得非常出色。

因此,我确实将 javax.annotation.processing.Processor文件放在resources/META-INF/services了包含 AbstractProcessor 实现的包路径的目录下。而且我故意添加了错误消息,该错误消息必须使构建失败,如下所示。

而且我确实仔细检查了我的行为,但我无法弄清楚首先出了什么问题。

在此处输入图像描述

所以真正的问题是为什么 Google 的 AutoService 确实有效而我的却没有?这一直困扰着我。

0 投票
2 回答
783 浏览

java - Gradle can not compile the code with the generated sources by annotationProcessor

How to make the gradle build/compile a project using generated source by annotationProcessor?

I have a project with 2 modules

app-annotation -> is a module that defines one annotation and a successor of the AbstractProcessor

app-api -> contains Entities with annotation from the previous module

The idea was to generate default CRUD Repositories and Services for each entity, also if it is needed have the possibility to extend some service.

The problem is, it generates all the needed java files (even Intellij Idea see those files) but as soon as I want to extend one of the services it fails while it is being compiled because as I understand at the moment of compiling my class there is not its superclass which is generated after. If I do then recompile only my class then it is ok Moreover, eclipse somehow compiles with no error at all, only when I build with Idea or gradlew build.

To fix it the solution below is used, but it looks not very nice

I am just curious how similar frameworks of code generation such as Lombok, Dagger2 work without any problem.

PS. I feel it should be much simpler, doesn't it?

0 投票
2 回答
95 浏览

java - Java注释处理器:如何从注释中提取类值

如何提取Class[] value()注解中的值

如果没有注释,则在注释处理器的运行时开始。