AutoValue не может быть разрешено для типа - Eclipse - PullRequest
2 голосов
/ 15 марта 2019

Попытка использовать AutoValue пакета com.google.auto.value.AutoValue в моем классе java и выдает ошибку "Невозможно разрешить 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, автоматическое значение-1,0-rc1.jar

Также попытался добавить плагин m2e-apt и Maven -> «Обработка аннотаций» -> выбрать «Автоматически настроить JDT APT ...»

По-прежнему появляется ошибка "Невозможно определить значение AutoValue для типа"

Есть ли решения? Заранее спасибо.

1 Ответ

0 голосов
/ 25 июля 2019

Кажется, вы немного устарели.Последней версией автоматического значения является 1.6.5.

Вам необходимо импортировать не только автоматическое значение, но и аннотации с автоматическим значением.Из официальной документации авто-значения:

<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.Для затмения вы, кажется, смотрели на Code Affine.Их статья об автоматической стоимости немного сбивает с толку.Вам нужны только авто-значения и авто-значения-аннотации.Гуава, автосервис и jsr не нужны для использования с авто-значением.

По крайней мере, у меня это сработало.

...