Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse AutoValue类无法生成_Java_Eclipse_Maven_Velocity_Auto Value - Fatal编程技术网

Java Eclipse AutoValue类无法生成

Java Eclipse AutoValue类无法生成,java,eclipse,maven,velocity,auto-value,Java,Eclipse,Maven,Velocity,Auto Value,我正在运行Eclipse开普勒SR2,Maven 3.1.1附带了m2e和m2e apt插件,我遇到了一个不知道如何解决的错误 我设法找到了在pom.xml中工作所需的所有依赖项,但现在我的状态是,只有当需要定义的方法都具有原始返回类型时,它才能工作。如果我提供一个抽象getter,它返回一个对象或更具体的对象,我会得到以下错误: @AutoValue processor threw an exception: java.lang.IllegalArgumentException:

我正在运行Eclipse开普勒SR2,Maven 3.1.1附带了m2e和m2e apt插件,我遇到了一个不知道如何解决的错误

我设法找到了在pom.xml中工作所需的所有依赖项,但现在我的状态是,只有当需要定义的方法都具有原始返回类型时,它才能工作。如果我提供一个抽象getter,它返回一个
对象
或更具体的对象,我会得到以下错误:

@AutoValue processor threw an exception:
  java.lang.IllegalArgumentException:
    Failed to invoke com.google.auto.value.processor.AutoValueProcessor$Property.nullable() on getObject...
我已经尝试了一些基础知识-清除maven缓存,重新启动Eclipse,重建项目。。。没有骰子。所以我深入研究了源代码,发现了一个不一致的地方,我不确定该如何解决

在生成的AutoValue类的中,有一些基本逻辑用于以不同于对象的方式呈现基本体,例如在第37行,选中了
p.nullable
p
变量是类的一个实例,如前面链接的第205行所示,它有一个
isNullable()
方法,但没有
nullable
方法或属性

那么,速度渲染阶段将如何工作?Velocity是否会自动扩展到
p.nullable
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在类声明开头的
点下突出显示所描述的错误。

当Eclipse运行注释处理器时,似乎缺少依赖项。尝试通过打开项目属性、浏览到Java编译器->注释处理->工厂路径、单击“添加外部JAR”然后选择jsr305 JAR来添加它。如果您已经从命令行使用maven构建了项目,那么您应该能够从
.m2
目录中选择JAR

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

在AutoValue的In版本
1.0-rc1
中,jsr305依赖项处有一条注释“必须在procesor运行的地方具有此属性”。发布
1.0-rc1
后的依赖项,因此在版本
1.0
中可能不需要将其添加到注释处理器工厂路径


有关在Eclipse中使用AutoValue的介绍,请参见。

您可能需要安装
m2e apt
插件,该插件基于
pom.xml
依赖项处理自动注释处理:

确保在项目首选项中或在以下部分中全局启用它:

Maven->“注释处理”->选择“自动配置JDT APT…”


详细信息和。

VTL扩展了对属性或方法的引用,但我想知道这是否与您的问题有关。getter方法是否返回可为null的对象(例如,您是否用@nullable注释它)?如果不是,测试是否将其设置为非空值?@pmorken错误不在测试中,它在编译时,在注释处理阶段(在AutoValueProcessor的运行时),因此没有运行时对象。我尝试将getter设置为
@Nullable
@NonNull
,两者都没有,但都会产生相同的结果。我按照上的说明创建了一个。它工作得很好。我已经从命令行(Maven 3.1.1)、EclipseKepler(使用m2e)和IDEA 13运行了这个示例。您能否提供遇到错误的类和字段的代码?当你从命令行运行Maven时,你的代码能工作吗?@manish不幸的是,我目前无法调试它,上周六飞出去了,我一周内都不会回到我的电脑上。我能够使用返回
对象的getter生成与任何@AutoValue类一致的错误,我在上面发布了一些伪代码以供澄清。我将您的示例类添加到我的中,它对我来说也很好。我只是按照上面的指示去做。我还注意到,您在帖子中提到了m2e、m2e apt插件和“自动值依赖项”(复数)。Github页面没有提到Eclipse插件,只有一个Maven依赖项。可能是,如果您可以列出您正在遵循的确切构建步骤和Eclipse工作台的屏幕截图,我们可以更快地将其整理出来。