【问题标题】:AutoValue cannot be resolved to a type - EclipseAutoValue 无法解析为类型 - Eclipse
【发布时间】:2019-08-06 03:57:49
【问题描述】:

尝试在我的 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 , 番石榴-16.0.1.jar , jsr-305-2.0.3.jar , auto-value-1.0-rc1.jar

还尝试添加m2e-apt插件和Maven -> “注释处理” -> 选择“自动配置JDT APT...”

仍然出现错误“AutoValue 无法解析为类型”

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

【问题讨论】:

    标签: java eclipse maven pom.xml auto-value


    【解决方案1】:

    看来你有点过时了。最新版本的自动值是 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。

    至少,这对我有用。

    【讨论】:

      猜你喜欢
      • 2016-07-29
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 2012-07-17
      相关资源
      最近更新 更多