Jai*_*iye 8 java code-generation intellij-idea auto-value gradle-apt-plugin
我一直在尝试为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'
}
Run Code Online (Sandbox Code Playgroud)
dependencies块dependencies {
compileOnly 'com.google.auto.value:auto-value:1.5'
apt 'com.google.auto.value:auto-value:1.5'
}
Run Code Online (Sandbox Code Playgroud)
@AutoValue
public abstract class GeneratedSourcesTest {
static GeneratedSourcesTest create(String field) {
return new AutoValue_GeneratedSourcesTest(field);
}
public abstract String field();
}
Run Code Online (Sandbox Code Playgroud)
GeneratedSourcesTest类,在静态工厂方法,一切编译好,但我得到错误:cannot resolve symbol ‘AutoValue_GeneratedSourcesTest’
如何AutoValue_GeneratedSourcesTest从IntelliJ访问该类?
在IDEA下导入Gradle项目后,请执行以下步骤:
这是一个最小的可行配置,它将为生成的类提供完整的IDE支持.缺点是,每当重新导入Gradle项目时,生成的文件夹都需要再次标记为Generated Sources Root.也许这可以通过在build.gradle下添加这些路径作为源集来改进.
有时,由于上述结果,IDEA模块会丢失其编译器输出路径设置.只需将其设置回默认文件夹就足够了.
答案(应该)在 gradle-apt-plugin 的自述文件中:https://github.com/tbroyer/gradle-apt-plugin
即,也应用该net.ltgt.apt-idea插件。
顺便说一句,我建议将构建/运行操作委托给 IntelliJ 中的 Gradle。当然它会慢一点,但需要在 IDE 中进行零设置并且工作可靠。也就是说,如果你不这样做,它也应该可以正常工作。
| 归档时间: |
|
| 查看次数: |
5381 次 |
| 最近记录: |