让注释处理器根据gradle标志忽略文件

时间:2019-06-09 16:06:17

标签: java gradle annotation-processing

我有两个gradle项目(A,B) 而且他们使用相同的注释处理器,问题在于A恰好拥有它不需要的处理器的一部分。

是否有一种方法可以配置gradle,以便注释处理器在A与B之间的执行有所不同?

我不想制作两个注释处理器,因为它们只有一个很小的部分相同。 (例如2-3行代码)

1 个答案:

答案 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来完成