使用从不同包生成的Java Immutables

时间:2017-04-05 01:35:15

标签: java intellij-idea gradle

我在包fooFooImmutableCatUser中有一个类,希望使用包ImmutableCat中定义的不可变bar对象。但是,即使正确导入FooImmutableCatUser,我仍然无法在foo包中识别ImmutableCat。导入错误(未使用的导入)和构建会在error: cannot find symbol产生错误:ImmutableCat.of()

bar中的我的目录结构如下:

\bar
  \models
     \Cat.java

Cat.java定义为

package bar.models;
import org.immutables.value.Value;

@Value.Immutable
public interface Cat {
    String getName();
    Object getValue();
}

这正确编译为ImmutableCat对象。

我尝试在FooImmutableCatUser中访问此内容,如下所示:

ImmutableCat.of("myString", myObject)

但是,这会从IntelliJ和Gradle中抛出error: cannot find symbol

我很确定我之前看到过使用其他软件包中的Immutables的代码。在构建时,如何让gradle或IntelliJ识别其他包中的Immutables?我需要在某处列出一个包依赖吗?

编辑:我已经尝试通过APT instructions from Immutable使用intellij启用注释。我已按照这些说明操作,但仍然无法识别Immutables,可能是由于gradle和Intellij指定了不同的构建输出目录。也许这就是问题 - 如果解决这个问题,我会在这里回复。

0 个答案:

没有答案