如何找到提供注释处理器的依赖项

时间:2018-03-23 19:49:28

标签: java gradle classpath

我正在一个具有许多类路径依赖项的项目中运行带有最新Gradle版本(v4.6)的构建。我明白了:

  

将注释处理器放在编译类路径上   已弃用,计划在Gradle 5.0中删除。请加   它们改为处理器路径。

如何找到违规的依赖关系(以合理的方式)?

1 个答案:

答案 0 :(得分:1)

到目前为止,我发现的最好的方法是将以下代码自己添加到构建脚本中:

tasks.withType(JavaCompile) {
    doFirst {
        effectiveAnnotationProcessorPath.each { maybeJar ->
            if (maybeJar.file) {
                println "Doing: " + maybeJar.name
                zipTree(maybeJar).matching {
                    include 'META-INF/services/javax.annotation.processing.Processor'
                } each {
                    processorConfigFile -> 
                    println "Annotation processor(s) found in $maybeJar.name:"
                    println processorConfigFile.filterLine { it =~ /^(?!#)/ }
                }
            }
        }
    }
}

(基于this Gradle forum answer