热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

无法使用AutoValue和IntelliJ解析符号

如何解决《无法使用AutoValue和IntelliJ解析符号》经验,为你挑选了1个好方法。

我一直在尝试为IntelliJ的注释处理找到正确的设置,以便它与Gradle的构建过程共存.

每当我使用IntelliJ构建时,我都无法识别gradle-apt-plugin中生成的源代码.

我对我的项目的要求是:

IntelliJ和Gradle之间的构建应该是无缝的,不会干扰彼此的过程

我需要使用IntelliJ的每个源集选项创建单独的模块

我需要使用IntelliJ的基于文件夹的结构

IntelliJ需要能够识别并自动完成AutoValue类

以下是使用IntelliJ 2017.2.4和Gradle 3.5重现问题的MCVE的步骤:

从IntelliJ创建一个新的Gradle项目

选中"为每个源集创建单独的模块"选项

打开build.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上运行Build→Build Project

打开GeneratedSourcesTest类,在静态工厂方法,一切编译好,但我得到错误:

cannot resolve symbol ‘AutoValue_GeneratedSourcesTest’

如何AutoValue_GeneratedSourcesTest从IntelliJ访问该类?



1> topr..:

在IDEA下导入Gradle项目后,请执行以下步骤:

    设置注释处理配置如下: 在此输入图像描述

    运行菜单:构建 - 构建项目

    右键单击每个新生成的文件夹,然后选择:将目录标记为 - 生成的源根,以便标记如下: 在此输入图像描述

      添加/generated到项目的.gitignore文件

这是一个最小的可行配置,它将为生成的类提供完整的IDE支持.缺点是,每当重新导入Gradle项目时,生成的文件夹都需要再次标记为Generated Sources Root.也许这可以通过在build.gradle下添加这些路径作为源集来改进.

有时,由于上述结果,IDEA模块会丢失其编译器输出路径设置.只需将其设置回默认文件夹就足够了.


推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • Squaretest:自动生成功能测试代码的高效插件
    本文将介绍一款名为Squaretest的高效插件,该工具能够自动生成功能测试代码。使用这款插件的主要原因是公司近期加强了代码质量的管控,对各项目进行了严格的单元测试评估。Squaretest不仅提高了测试代码的生成效率,还显著提升了代码的质量和可靠性。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • 在Maven项目中高效集成JaCoCo代码覆盖率插件,以显著提高测试质量。首先,需在项目的`pom.xml`文件中添加JaCoCo和JUnit的依赖配置,确保测试框架和覆盖率工具的无缝结合。通过这种方式,开发者不仅能够执行单元测试,还能获取详细的代码覆盖率报告,从而优化测试策略和代码质量。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文介绍了如何将包含复杂对象的字典保存到文件,并从文件中读取这些字典。 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • JVM钩子函数的应用场景详解
    本文详细介绍了JVM钩子函数的多种应用场景,包括正常关闭、异常关闭和强制关闭。通过具体示例和代码演示,帮助读者更好地理解和应用这一机制。适合对Java编程和JVM有一定基础的开发者阅读。 ... [详细]
  • 今天我开始学习Flutter,并在Android Studio 3.5.3中创建了一个新的Flutter项目。然而,在首次尝试运行时遇到了问题,Gradle任务 `assembleDebug` 执行失败,退出状态码为1。经过初步排查,发现可能是由于依赖项配置不当或Gradle版本不兼容导致的。为了解决这个问题,我计划检查项目的 `build.gradle` 文件,确保所有依赖项和插件版本都符合要求,并尝试更新Gradle版本。此外,还将验证环境变量配置是否正确,以确保开发环境的稳定性。 ... [详细]
  • 今日精选:10款实用的jQuery随机效果插件
    在今天的精选内容中,我们推荐了10款实用的jQuery随机效果插件。这些插件不仅功能强大,而且设计精良,能够为您的网页增添独特的互动体验。从动态图像效果到文本动画,每款插件都提供了丰富的自定义选项,帮助开发者轻松实现创意视觉效果。特别值得一提的是,其中一款插件集成了与Google API的无缝对接,使数据展示更加生动和直观。 ... [详细]
  • 10款精选jQuery插件助力响应式网页设计布局优化
    响应式网页设计在当今的数字环境中至关重要。本文精选了10款优秀的jQuery插件,旨在帮助设计师和开发者优化网站布局,确保内容在不同设备上(如手机、平板电脑等)都能呈现最佳效果,提升用户体验。这些插件不仅功能强大,还能显著简化开发流程,提高工作效率。 ... [详细]
author-avatar
我的明天谁2502931447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有