Java Eclipse和Buildship中的Gradle项目依赖关系
我使用EclipseMars.2(4.5.2)和Buildship 1.0.14。Gradle版本是2.12 我将gradle项目导入Eclipse。 导入前不存在Java Eclipse和Buildship中的Gradle项目依赖关系,java,eclipse,gradle,gradle-eclipse,buildship,Java,Eclipse,Gradle,Gradle Eclipse,Buildship,我使用EclipseMars.2(4.5.2)和Buildship 1.0.14。Gradle版本是2.12 我将gradle项目导入Eclipse。 导入前不存在.project或.classpath文件。已成功导入所有模块。但几乎所有使用java代码的项目都缺少依赖项,并显示红色的“X” 如果打开一个有错误的java文件,您可以看到Eclipse无法解析导入。但是,如果您按名称打开导入的类,它可以在其他模块的依赖项中找到它 Gradle->Refresh项目没有帮助 根build.gradl
.project
或.classpath
文件。已成功导入所有模块。但几乎所有使用java代码的项目都缺少依赖项,并显示红色的“X”
如果打开一个有错误的java文件,您可以看到Eclipse无法解析导入。但是,如果您按名称打开导入的类,它可以在其他模块的依赖项中找到它
Gradle->Refresh项目没有帮助
根build.gradle
中声明的必要依赖项如下:
ext.library = [
swagger: [
[ group: "io.swagger", name: "swagger-annotations", version: "1.5.3" ],
[ group: "io.swagger", name: "swagger-core", version: "1.5.3" ],
[ group: "io.swagger", name: "swagger-jaxrs", version: "1.5.3" ]
]
]
在模块中,我声明如下:
dependencies {
providedCompile library.swagger
}
当您从命令行甚至Eclipse执行gradlebuild
时,构建成功
可以在上找到重现此问题的小项目示例(感谢RaGe的参与)
您能帮我用Eclipse解决这个问题吗?请参考您提供的代码示例 您没有使用war插件,而是声明自己的自定义配置,名为
providedCompile
。Gradle和扩展,buildship/eclipse不知道providedCompile的意思。因此,您在providedCompile
中列出的依赖项不会用作编译时依赖项
因此,您的import语句会变成编译时错误—无论是在eclipse中还是从带有gradlebuild的gradle命令行中
您可以通过执行以下操作将providedCompile
添加到编译类路径:
sourceSets.main.compileClasspath += [configurations.providedCompile]
如果还将eclipse插件添加到项目中,则可以使用以下命令修改eclipse编译类路径:
eclipse {
classpath {
plusConfigurations += [configurations.providedCompile]
}
}
官方bug追踪器上的家伙告诉我,gradle 2.12现在可以使用compileOnly
作用域,默认情况下它也连接到Eclipse。你使用的gradle版本是什么?你使用的是gradle war插件吗?gradle版本是2.12。是的,使用了war插件。无法使用eclipse mars 2和buildship 1.0.14复制。在新导入eclipse时,buildship下载了所有招摇过市的和可传递的依赖项,并且.RaGe,我能够修改您的示例来重现这个问题。通过添加eclipse插件和配置解决了这个问题,谢谢!伟大的你也应该考虑投票。