AutoValue无法解析为类型-Eclipse

时间:2019-03-15 05:54:01

标签: 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, 番石榴16.0.1.jar, jsr-305-2.0.3.jar, auto-value-1.0-rc1.jar

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

仍然出现错误“自动值无法解析为类型”

有解决方案吗? 预先感谢。

1 个答案:

答案 0 :(得分:0)

您似乎有些过时了。自动值的最新版本是1.6.5。

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

super(self.__class__, self)

这就是您需要的Maven。对于日食,您似乎已经看过Code Affine。他们关于自动值的文章有些混乱。您只需要自动值和自动值注释。番石榴,自动服务和jsr不需要与自动值一起使用。

至少这对我有用。