Eclipse AutoValue 类无法构建

2023-12-27

我正在运行 Eclipse Kepler SR2,其中 Maven 3.1.1 附加有 m2e 和 m2e-apt 插件,但我收到一个错误,我不知道如何解决。

我设法找到了获得所需的所有依赖项@AutoValue https://github.com/google/auto/tree/master/value工作到我的 pom.xml 中,但现在我处于一种状态,只有当需要定义的方法都具有原始返回类型时它才起作用。如果我提供一个返回一个抽象 getterObject或者更具体地说,我收到此错误:

@AutoValue processor threw an exception:
  java.lang.IllegalArgumentException:
    Failed to invoke com.google.auto.value.processor.AutoValueProcessor$Property.nullable() on getObject...

我已经尝试了基础知识 - 清除 Maven 缓存,重新启动 Eclipse,重建项目...没有骰子。因此,我深入研究了源代码,发现了一个差异,我不确定如何解决它。

In the 速度模板 https://github.com/google/auto/blob/master/value/src/main/java/com/google/auto/value/processor/autovalue.vm对于生成的 AutoValue 类,有一些基本逻辑用于以不同于对象的方式呈现基元,例如第 37 行,p.nullable已检查。这p变量是一个实例AutoValueProcessor$Property https://github.com/google/auto/blob/master/value/src/main/java/com/google/auto/value/processor/AutoValueProcessor.java类,正如前面链接的第 205 行所示,它有一个isNullable()方法,但是没有nullable方法或属性。

那么速度渲染阶段是如何工作的呢? Velocity是否自动扩展p.nullable to p.isNullable有些怎么样,但不适合我,因为什么原因?这是一个错误吗?我不知道从这里该做什么。


无法编译的示例类:

@AutoValue
public abstract class Point {

  public static Point of(double x, double y) {
    return new AutoValue_Point(x, y);
  }

  public abstract Double x();

  public abstract Double y();

}

Eclipse 突出显示了下面描述的错误Point位于类声明的开头。


看来依赖com.google.code.findbugs:jsr305 http://mvnrepository.com/artifact/com.google.code.findbugs/jsr305/1.3.9当 Eclipse 运行注释处理器时丢失。尝试通过打开项目属性来添加它,浏览到 Java 编译器 -> 注释处理 -> 工厂路径,单击“添加外部 JAR”,然后选择 jsr305 JAR。如果您从命令行使用 maven 构建了项目,您应该能够从您的.m2目录。

以下是我的项目中的属性(第一个条目是由 Eclipse 自动添加的,似乎不相关):

In the pom.xml https://github.com/google/auto/blob/a0afde58c446e0084d31095e5fc27236c2fe52e3/value/pom.xml在版本中1.0-rc1AutoValue 的 jsr305 依赖项中有一条注释“必须在处理器运行的地方有这个”。依赖性去掉了 https://github.com/google/auto/commit/fa36cc612a292e41a8d1aa5a747d6594e7218e6d发布后1.0-rc1,因此将其添加到注释处理器工厂路径可能不需要版本1.0.

也可以看看这篇博文 http://www.codeaffine.com/2014/03/04/using-the-autovalue-code-generator-in-eclipse/了解如何将 AutoValue 与 Eclipse 结合使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Eclipse AutoValue 类无法构建 的相关文章

  • 添加@Named时@SessionScoped不起作用

    考虑以下支持 bean import javax faces bean ManagedBean import javax faces bean SessionScoped ManagedBean SessionScoped public c
  • 如何实现可运行队列

    我正在尝试实现一个可运行队列 在异步任务期间依次执行 意味着队列中的下一个将在另一个完成后执行 我编写了一个管理器来管理这些可运行对象和本身就是可运行对象的任务 然后 我获取异步任务中的第一个任务并运行它 希望它能够在队列中运行 但是它最终
  • Android 上 WebRTC 的自定义视频源

    Overview 我想使用自定义视频源通过 WebRTC Android 实现来直播视频 如果我理解正确的话 现有的实现仅支持 Android 手机上的前置和后置摄像头 以下类与此场景相关 Camera1Enumerator java ht
  • Maven 插件前缀解析如何工作?为什么它解决了“findbugs”而不是“jetty”?

    我正在使用 Maven 进行一些测试 并意识到我可以执行findbugsFindbugs 插件的目标 无需将插件添加到 POM 文件 另一方面 当我需要运行runJetty 插件的目标 我被迫将插件添加到 POM 文件中 否则构建失败 为什
  • HTTPURLConnection 不遵循从 HTTP 到 HTTPS 的重定向

    我不明白为什么JavaHttpURLConnection不遵循从 HTTP 到 HTTPS URL 的 HTTP 重定向 我使用以下代码来获取页面https httpstat us https httpstat us import java
  • 如何在android中播放内部和外部SD卡中的mp3文件?

    我正在开发一个 mp3 播放器应用程序 它可以播放内部 SD 卡内任何位置的 mp3 文件 我使用以下代码来获取内部存储中存在的 mp3 文件 ArrayList
  • 动态更新 LookAndFeel 值

    我希望能够动态更新 Swing GUI 的 LookAndFeel 属性 在本例中 我有一个简单的 Swing Awt 游戏 运行最初为 Nimbus 的游戏LookAndFeel 在启动后的各个时刻 我只想更改 比方说 一个细节 应用程序
  • “传输协议线程失败” – “套接字为 EOF”,使用 Java 进行 J2SSH 连接

    我正在尝试通过我的 Java 代码建立 SSH 连接 但遇到异常 我通过 Putty Winscp 工具测试了我的连接 它工作正常 问题出在我的 Java 代码上 SEVERE The Transport Protocol thread f
  • 版本差异? Java 中的正则表达式转义

    看来正则表达式转义在不同版本的 Java 中的工作方式不同 在 Java openjdk 16 0 1 中编译工作正常 在 Java openjdk 11 0 11 中抛出此编译错误 test java 15 error illegal e
  • Spring Boot 1.4:Liquibase完成后的执行方法

    我有一个基于 Spring Boot 1 4 0 的项目 该项目使用 Liquibase liquibase 完成后是否可以执行方法 像 Bean 后处理器之类的东西 我想要做的是当应用程序在开发模式下启动时向我的数据库添加一些数据 在开发
  • Artifact 尚未打包 - maven-dependency-plugin

    当我构建一个多模块 Maven 项目时 使用mvn clean compile 其中使用 dependency copy 将一个依赖项 构建反应器的一部分 复制到另一个依赖项中 然后 Maven 抱怨以下错误 Artifact has no
  • 从 API Explorer 调用 API 方法时不允许使用范围

    我在 Google App Engine 中有一个奇怪的行为 我正在使用 Eclipse 和 Java 进行开发 特别是使用 Google Cloud Endpoints 我使用以下设置创建了一个示例 API 实际上 我正在使用许多其他示波
  • 无法实例化类对象的类型 (Java)

    这是我收到错误的代码 在 new 之后的第二个 Killer 处 String classes new String 5 kills 0 Brian Moser kills 1 James Doakes kills 2 Lila Tourn
  • 尝试模拟静态时出现 NoClassDefFoundError 或 NoSuchMethodError (不兼容的依赖项)

    When a class with static method is mocked an exception been thrown The version 2 0 0 of PowerMock displays NoClassDefFou
  • Java基于参数的同步(名为互斥锁/锁)

    我正在寻找一种根据接收到的参数来同步方法的方法 如下所示 public synchronized void doSomething name some code 我想要方法doSomething同步基于name参数如下 线程 1 doSom
  • SSLHandShakeException 没有适当的协议

    我最近向我的网站添加了 SSL 可以通过 https 访问它 现在 当我的 java 应用程序尝试向我的网站发出请求并使用缓冲读取器从中读取时 它会生成此堆栈跟踪 我没有使用自签名证书 该证书来自 Namecheap 它使用 COMODO
  • startDrag 方法 已弃用且无法编译程序

    startDrag android content ClipData android view View DragShadowBuilder java lang Object int 已弃用 如何解决这个问题而又不失去对旧版本的兼容性 还有
  • 如何使用 Java 1.4 和 SAX 将任意数据编码为 XML?

    我们使用 SAX 来解析 XML 因为它不需要将整个 XML 文档读入内存来解析单个值 我读过很多文章 坚持认为 SAX 只能用于解析 解码 XML 而不能创建它 这是真的 不 这不是真的 您可以使用类似于以下内容的方式将 XML 编码为
  • 运行外部进程的非阻塞线程

    我创建了一个 Java GUI 应用程序 它充当许多低级外部进程的包装器 该实用程序按原样运行 但迫切需要一项重大改进 我希望我的外部进程以非阻塞方式运行 这将允许我并行服务其他请求 简而言之 我希望能够在生成数据时处理来自外部进程的数据
  • 为 Netsuite 启用内容辅助 eclipse

    如何在 Eclipse for Netsuite 中启用自动完成 内容辅助 ctrl space 如果我使用 java 内容创建辅助可以正常工作 但是如果我打开并为 Netsuite 项目创建内容辅助则无法正常工作 任何人都可以帮忙吗 Th

随机推荐