Java Eclipse Gradle buildship导入子项目编译错误
我使用projectJava Eclipse Gradle buildship导入子项目编译错误,java,gradle,gradle-plugin,gradle-eclipse,Java,Gradle,Gradle Plugin,Gradle Eclipse,我使用projectxxxAPI创建了projectxxxWeb。这两个项目都是父项目的子项目。ProjectxxxAPI使用第三方库jarjar1.jar,它有一个classsomepackage.ClassA。项目xxxAPI本身也有相同的somepackage.ClassA项目xxxWeb打算使用的 但是,Eclipse从jar1.jar加载somepackage.ClassA,导致编译错误,因为jar1/somepackage/ClassA没有像xxxAPI/somepackage/Cl
xxxAPI
创建了projectxxxWeb
。这两个项目都是父项目的子项目。ProjectxxxAPI
使用第三方库jarjar1.jar
,它有一个classsomepackage.ClassA
。项目xxxAPI本身也有相同的somepackage.ClassA
项目xxxWeb
打算使用的
但是,Eclipse从jar1.jar
加载somepackage.ClassA
,导致编译错误,因为jar1/somepackage/ClassA
没有像xxxAPI/somepackage/ClassA
中那样的必要字段
在xxxWeb项目类路径中,Eclipse将xxxAPI项目放在末尾,这可能是编译器选择jar1/somepackage/ClassA
而不是xxxAPI/somepackage/ClassA
的原因
然而,这在IntelliJ中不是问题
有治疗方法吗
构建脚本工作正常,所以我想这是一个关于Gradle的Eclipse插件的问题,以及如何操作生成的类路径?从2.14.1版开始,这是Gradle的一个bug。解决方法是利用EclipseGradle插件提供的钩子删除重复的类路径条目
eclipse {
classpath {
file {
whenMerged { cp ->
cp.entries = cp.entries.unique{a,b -> a.path <=> b.path}
}
}
}
}
日食{
类路径{
文件{
合并时{cp->
cp.entries=cp.entries.unique{a,b->a.path b.path}
}
}
}
}
从2.14.1版开始,这是gradle的一个bug。解决方法是利用EclipseGradle插件提供的钩子删除重复的类路径条目
eclipse {
classpath {
file {
whenMerged { cp ->
cp.entries = cp.entries.unique{a,b -> a.path <=> b.path}
}
}
}
}
日食{
类路径{
文件{
合并时{cp->
cp.entries=cp.entries.unique{a,b->a.path b.path}
}
}
}
}
您应该将其格式化为更清晰的格式。图片可能也是个好主意。你应该把它格式化成更清晰的形式。一张照片也可能是个好主意。