gpt4 book ai didi

java - Eclipse 中的 Gradle 项目依赖关系与 Buildship

转载 作者:行者123 更新时间:2023-11-30 02:58:20 24 4
gpt4 key购买 nike

我使用 Eclipse Mars.2 (4.5.2) 和 Buildship 1.0.14。 Gradle 版本是 2.12。

我将我的 gradle 项目导入到 Eclipse 中。导入前不存在 .project.classpath 文件。所有模块均已成功导入。但几乎每个使用 java 代码的项目都缺少依赖项并显示红色“X”。

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

Gradle -> 刷新项目没有帮助。

在根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 的这个问题吗?

最佳答案

引用您提供的代码示例here进行回答.

您没有使用 war 插件,而是声明您自己的名为 providedCompile 的自定义配置。 Gradle 以及 buildship/eclipse 不知道providedCompile 的含义。因此,您在 providedCompile 中列出的依赖项不会用作编译时依赖项。

因此,您的导入语句会成为编译时错误 - 无论是在 Eclipse 中还是使用 gradle build 的 gradle 命令行

您可以通过执行以下操作将 providedCompile 添加到编译类路径:

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

如果您还向项目添加了 eclipse 插件,则可以修改 eclipse 编译类路径:

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

关于java - Eclipse 中的 Gradle 项目依赖关系与 Buildship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36633482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com