我有两个gradle项目(A,B) 而且他们使用相同的注释处理器,问题在于A恰好拥有它不需要的处理器的一部分。
是否有一种方法可以配置gradle,以便注释处理器在A与B之间的执行有所不同?
我不想制作两个注释处理器,因为它们只有一个很小的部分相同。 (例如2-3行代码)
答案 0 :(得分:0)
我无法说出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来完成