1

我正在试验 Gradle/IntelliJ 和各种 Java 构建器/容器。但是,我无法在同一个项目中同时配置 org.inferred.FreeBuilder 和 com.google.auto.value.AutoValue。

使用下面的 build.gradle 文件,我能够成功编译带有 AutoValue 的类(来自 AutoValue文档的动物示例)。

但是,只要我取消注释“id 'org.inferred.processors”和“processor 'org.inferred:freebuilder:1.14.6'”,我就会得到

:processorPath \main\java\example\com\Animal.java:12: 错误:找不到符号返回新 AutoValue_Animal(name, numberOfLegs); ^ 符号:类 AutoValue_Animal 位置:类 Animal 1 错误:compileJava FAILED

plugins {
    id 'java'
    id 'idea'
    id 'net.ltgt.apt-idea'  version '0.13'
    // id 'org.inferred.processors' version '1.2.15'
}

version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.google.auto.value:auto-value:1.5.1'
    apt 'com.google.auto.value:auto-value:1.5.1'

    //processor 'org.inferred:freebuilder:1.14.6'
}

jar {
    from {
        (configurations.runtime).collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
    manifest {
        attributes 'Main-Class': 'example.com.Main'
    }
}

idea {
    project {
        // experimental: whether annotation processing will be configured in the IDE; only actually used with the 'idea' task.
        configureAnnotationProcessing = true
    }
    module {
        apt {
            // whether generated sources dirs are added as generated sources root
            addGeneratedSourcesDirs = true
            // whether the apt and testApt dependencies are added as module dependencies
            addAptDependencies = true

            // The following are mostly internal details; you shouldn't ever need to configure them.
            // whether the compileOnly and testCompileOnly dependencies are added as module dependencies
            addCompileOnlyDependencies = false // defaults to true in Gradle < 2.12
            // the dependency scope used for apt and/or compileOnly dependencies (when enabled above)
            mainDependenciesScope = "PROVIDED" // defaults to "COMPILE" in Gradle < 3.4, or when using the Gradle integration in IntelliJ IDEA
        }
    }
}

我正在尝试从这些来源中提取信息:

4

1 回答 1

1

您可以在项目中使用两个 gradle 依赖项,但不能同时使用它们的 gradle 插件。你也不需要。

您只需要一个 gradle 插件来支持注释处理器(其中任何一个),然后所有 bean 处理器依赖项都应该工作。

于 2018-01-05T00:26:08.163 回答