我有两个gradle项目(A,B),它们使用相同的批注处理器,问题是A恰好有它不需要的处理器的一个部分。
有没有办法配置gradle,让批注处理器在A和B上执行不同的操作?
我不想做两个注释处理器,因为它们除了一个很小的部分之外都是相同的。(想像2-3行代码)
发布于 2019-12-18 22:05:33
我不能说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>这个编译时参数可以通过processor的init函数中的以下代码片段在批注处理器中读取
this.widget = processingEnv.getOptions().get("widget");您可以使用此属性执行某些条件操作。
我相信通过gradle也可以做到这一点
https://stackoverflow.com/questions/56516202
复制相似问题