java - 根据来自另一个模块的注释在一个模块中生成代码
问题描述
我正在尝试制作一个注释处理器来处理一些名为 GenerateRepository 的注释并在一个名为 server 的模块中运行该处理器。该服务器模块依赖于一个公共模块,该模块是使用此 GenerateRepository 注释对类进行注释的地方。我的问题是,有没有办法让处理器在依赖项上运行?我正在使用 Gradle 来管理依赖项和 IntelliJ。
到目前为止,我所拥有的是以下内容:
处理器模块,其中定义了注释和处理器类。处理器尝试将生成的类文件写入名为“repo”的包中,该包位于服务器模块中
公共模块,其中定义了一个域类,例如下面的一个
@GenerateRepository
public class A{
...
}
服务器模块,我希望处理器在其中运行并将生成的文件放入“repo”包中
gradle 构建如下所示:
- 服务器等级:
dependencies {
compile project(':common')
annotationProcessor project(':processor')
}
- 普通等级:
dependencies {
compile project(":processor")
}
处理器 Gradle 为空
项目范围的 gradle 文件如下所示:
allprojects {
apply plugin: 'java'
apply plugin: 'idea'
group 'org.chair-fight'
version '1.0-SNAPSHOT'
sourceCompatibility = JavaVersion.VERSION_15
idea.module.scopes.PROVIDED.plus += [configurations.annotationProcessor]
}
问题主要是当我构建项目时,处理器不查看服务器模块的依赖项,只查看服务器模块。我想要的是让它也在依赖项中的类上运行
解决方案
推荐阅读
- facebook - 通过 Facebook API 提升 Instagram 帖子
- android - Xamarin.Forms:在地图点击时隐藏 ListView?
- c# - Visual Studio 2017 设计器视图不显示控件
- excel - 按主题搜索所有文件夹中的最新电子邮件并全部回复
- javascript - 表格未提交正确的数据
- asp.net-core-mvc - 如何修复从 Postman 中的 PUT json 发送的空对象?
- c# - 删除事件不是从角度调用 get 方法调用
- r - 在 Stargazer 表中包含标准化系数
- c# - 如何使代码显示信息?
- javascript - 是什么 !vue/typescript 应用程序中的符号