Eclipse Gradle buildship导入子项目编译错误

时间:2016-08-09 20:31:10

标签: java gradle gradle-plugin gradle-eclipse

我使用项目xxxWeb创建项目xxxAPI。这两个项目都是父项目的子项目。项目xxxAPI使用第三方库jar jar1.jar,其中包含类somepackage.ClassA。项目xxxAPI本身也与项目somepackage.ClassA打算使用的xxxWeb相同。

但是,Eclipse会从somepackage.ClassA加载jar1.jar,导致编译错误,因为jar1/somepackage/ClassA没有xxxAPI/somepackage/ClassA中的必要字段。

在xxxWeb项目类路径中,Eclipse将xxxAPI项目置于最后,这可能是编译器选择jar1/somepackage/ClassA而不是xxxAPI/somepackage/ClassA的原因。

然而,这在IntelliJ中不是问题。

有治疗方法吗?

构建脚本工作正常,所以我这是关于Gradle的Eclipse插件的问题,以及如何操作生成的类路径?

1 个答案:

答案 0 :(得分:0)

这是版本2.14.1中的gradle错误。解决方法是利用Eclipse Gradle插件提供的钩子删除重复的类路径条目

eclipse {
    classpath {
        file {
            whenMerged { cp ->
                cp.entries = cp.entries.unique{a,b -> a.path <=> b.path}
            }
        }
    }
}