java - 有基于 gradle 标志的注释处理器忽略文件
问题描述
我有两个 gradle 项目(A,B),它们使用相同的注释处理器,问题是 A 恰好有它不需要的处理器的一部分。
有没有办法配置 gradle,以便注释处理器对 A 和 B 执行不同的操作?
我不想制作两个注释处理器,因为除了一小部分之外它们是相同的。(想像 2-3 行代码)
解决方案
我不知道 gradle,但在 maven 中,您可以通过以下方式传递编译时参数
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<generatedSourcesDirectory>${project.build.directory}/generated-sources/</generatedSourcesDirectory>
<annotationProcessors>
<annotationProcessor>org.rapster.xxx.xxx.xxComponentProcessor</annotationProcessor>
</annotationProcessors>
<compilerArgs>
<arg>-Awidget=something</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
此编译时间参数可以通过处理器的 init 函数中的以下代码段在您的注释处理器中读取
this.widget = processingEnv.getOptions().get("widget");
您可以使用此属性来执行某些条件操作。
我相信同样可以通过 gradle 完成
推荐阅读
- amazon-cloudformation - 创建堆栈后运行任务定义
- r - R ggplot2更改*特别*线型图例的背景颜色
- r - 在 R 中,如何从数据集列表中提取某些行?
- kubernetes - Kubelet - 未能为 coredns “创建PodSandbox”;未能设置网桥地址:无法将 ip 地址添加到“cni0”:权限被拒绝
- python - 一个班轮通过一个可迭代(生成器)
- kubernetes - 如何在 localhost 上使用 spring cloud kubernetes 发现?
- android - Kotlin:Firebase 密码验证
- c# - EF Core 中的当前上下文中不存在名称 Savechanges()
- python - 将数据帧均匀地拆分为许多较小的数据帧
- javascript - 用奇数和偶数按值对数组进行分块