繁体   English   中英

使用Buildship在Gradle中实现项目依赖

[英]Gradle Project Dependencies in Eclipse with Buildship

我在Buildship 1.0.14中使用Eclipse Mars.2(4.5.2)。 Gradle版本为2.12。

我将gradle项目导入Eclipse。 导入之前不.project.classpath文件。 所有模块已成功导入。 但是几乎每个带有Java代码的项目都缺少依赖项,并显示红色的“ X”。

如果打开错误的Java文件,则可以看到Eclipse无法解决导入。 但是,如果您按名称打开导入的类,则可以在其他模块的依赖项中找到它。

Gradle->刷新项目无济于事。

以这种方式在root 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执行gradle build ,构建成功。

可以在github上找到重现此问题的小项目示例(感谢RaGe的参与)。

您能帮我用Eclipse解决此问题吗?

参考您在此处提供的代码示例进行回答。

您没有使用war插件,而是声明了自己的自定义配置,称为providedCompile 摇篮推而广之,buildship /月食不知道什么providedCompile手段。 因此,您在providedCompile中列出的依赖项不会被用作编译时依赖项。

因此,您的import语句将成为编译时错误-在eclipse中和使用gradle build gradle命令行中

您可以添加providedCompile做的编译类路径:

sourceSets.main.compileClasspath += [configurations.providedCompile]

如果还将eclipse插件添加到项目中,则可以使用以下命令修改eclipse编译类路径:

eclipse {
  classpath {
    plusConfigurations += [configurations.providedCompile]
  }
}

官方错误跟踪器上的人告诉我,在gradle 2.12中,现在可以使用compileOnly范围,默认情况下,该范围也已连接到Eclipse。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM