我一直在尝试为IntelliJ的注释处理找到正确的设置,以便它与Gradle的构建过程共存。
每当我使用IntelliJ构建时,我无法识别gradle-apt-plugin中生成的源。
我对项目的要求是:
以下是使用IntelliJ 2017.2.4和Gradle 3.5重现问题的MCVE的步骤:
plugins
块:
plugins {
id 'java'
id 'net.ltgt.apt' version '0.12'
}
dependencies
块
dependencies {
compileOnly 'com.google.auto.value:auto-value:1.5'
apt 'com.google.auto.value:auto-value:1.5'
}
@AutoValue
public abstract class GeneratedSourcesTest {
static GeneratedSourcesTest create(String field) {
return new AutoValue_GeneratedSourcesTest(field);
}
public abstract String field();
}
GeneratedSourcesTest
类,在静态工厂方法中,所有内容编译都很好,但我收到错误: cannot resolve symbol ‘AutoValue_GeneratedSourcesTest’
如何从IntelliJ访问AutoValue_GeneratedSourcesTest
课程?
答案 0 :(得分:7)
在IDEA下导入Gradle项目后,请执行以下步骤:
答案 1 :(得分:3)
答案是(应该)在gradle-apt-plugin的自述文件中:https://github.com/tbroyer/gradle-apt-plugin
即,也应用net.ltgt.apt-idea
插件。
顺便说一句,我建议将构建/运行操作委派给IntelliJ中的Gradle。当然它有点慢,但在IDE中需要零设置并且可靠地工作。也就是说,如果你不这样做,它也应该可以。
答案 2 :(得分:0)
只需使用这些内容的build.gradle即可正常运行,无需接触intellij,源集等。
plugins {
id 'java'
id "net.ltgt.apt" version "0.20"
}
apply plugin: 'idea'
apply plugin: 'net.ltgt.apt-idea'
group 'abc'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile "com.google.auto.value:auto-value-annotations:1.6.2"
annotationProcessor "com.google.auto.value:auto-value:1.6.2"
}