java - AutoValue 无法解析为类型 - Eclipse

标签 java eclipse maven pom.xml auto-value

尝试在我的 java 类中使用包 com.google.auto.value.AutoValue 的 AutoValue 并出现错误“AutoValue 无法解析为类型”

我已经在 pom.xml 中添加了这个

<!-- https://mvnrepository.com/artifact/com.google.auto.value/auto-value -->
<dependency>
    <groupId>com.google.auto.value</groupId>
    <artifactId>auto-value</artifactId>
    <version>1.2</version>
    <scope>provided</scope>
</dependency>

Java 程序:

package xxxx;

import ------
import com.google.auto.value.AutoValue;

@AutoValue
@DefaultCoder(SerializableCoder.class)
public abstract class ABC{
  /**
   * Manually create a test row.
   */
  public static ABC create(List<Object> fields) {
    return new AutoValue_ABC(fields); //error is here
  }

  public abstract List<Object> fields();
}

我尝试了一些解决方案,例如通过打开项目属性来添加它,浏览到 Java 编译器 -> 注释处理 -> 工厂路径,单击“添加外部 JAR”,然后选择 4 个 jar 文件 - auto-service-1.0-rc1 .jar , guava-16.0.1.jar , jsr-305-2.0.3.jar , auto-value-1.0-rc1.jar

还尝试添加 m2e-apt 插件和 Maven -> “Annotation processing” -> 选择“Automatically configure JDT APT...”

仍然出现错误“AutoValue cannot be resolved to a type”

任何解决方案? 提前致谢。

最佳答案

看来你有点过时了。 auto-value 的最新版本是 1.6.5。

您不仅要导入自动值,还要导入自动值注释。来自 official documentation of auto-value:

<dependency>
  <groupId>com.google.auto.value</groupId>
  <artifactId>auto-value-annotations</artifactId>
  <version>1.6.2</version>
</dependency>
<dependency>
  <groupId>com.google.auto.value</groupId>
  <artifactId>auto-value</artifactId>
  <version>1.6.2</version>
  <scope>provided</scope>
</dependency>

这就是 maven 所需要的。对于eclipse,您似乎已经看过Code Affine。他们关于自动值的文章有点令人困惑。您只需要自动值和自动值注释。 Guava、auto-service 和 jsr 与 auto-value 一起使用不是必需的。

至少,这对我有用。

关于java - AutoValue 无法解析为类型 - Eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55176365/

相关文章:

java - 如何在使用 Thrift 文件生成 Bazel 构建时添加依赖项 java 文件

java - 每当执行应用程序时,它在 android 模拟器中显示为空白

java - 导出使用公共(public)项目的 JAR 项目

java - 将 maven 项目导入 netbeans

maven - 打包期间只产生一场 war

java - 对自定义链表使用递归

java - 如何解决 android (java) 中的退格错误

java - Mongodb数据库Schema设计技巧

java - 从目录导入时 eclipse 中的包名称

spring - 为 Tomcat 构建的 Maven WAR : "Could not open ServletContext resource [/WEB-INF/applicationContext.xml]"