我一直在尝试为IntelliJ的注释处理找到正确的设置,以便它与Gradle的构建过程共存。无法使用AutoValue和IntelliJ解析符号
每当我从IntelliJ构建我无法让它识别从gradle-apt-plugin生成的来源。
我为我的项目的要求是:的IntelliJ和摇篮之间
- 建筑应该是无缝的,不与对方
- 我需要使用的IntelliJ的创建单独的模块,每个源设置干扰过程选项
- 我需要使用基于IntelliJ的文件夹结构
- IntelliJ需要能够识别和自动完成AutoValue类
这里是为了重现该问题与的IntelliJ 2017年2月4日和摇篮3.5的MCVE步骤:
- 来自的IntelliJ创建一个新的摇篮项目
- 检查创建每个单独的模块源集选项
- 打开构建。gradle这个文件:
- 添加以下
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();
}
- 在的IntelliJ运行生成→生成项目
- 打开
GeneratedSourcesTest
类的静态工厂方法,一切编译罚款,但我得到的错误:
cannot resolve symbol ‘AutoValue_GeneratedSourcesTest’
我怎样才能让AutoValue_GeneratedSourcesTest
可从IntelliJ访问的类?
请参阅https://youtrack.jetbrains.com/issue/IDEA-124090 – CrazyCoder