Eclipse无法识别Gradle依赖项。

44

我是Gradle的新手,正在尝试这个教程https://spring.io/guides/gs/rest-service/。我已经成功编译了包含所需依赖项的jar文件并运行它。但是,我发现IDE不能识别库,这让我感到非常烦恼。

enter image description here

有没有任何方式可以做到这一点?


3
我猜你使用的是Eclipse集成开发环境。请安装Buildship Eclipse插件,并按照其说明将Gradle项目加载到Eclipse中。http://marketplace.eclipse.org/content/buildship-gradle-integration - JB Nizet
我的IDE是Spring Tool Suite,据我所知不需要下载。 - cvguy
2
然后只需按照它的说明进行操作。您必须有类似于文件 - 导入 - Gradle 项目之类的东西。 - JB Nizet
7
你的Eclipse项目是Gradle项目还是普通的Java项目?如果是Gradle项目,请右键单击项目并选择“Gradle(STS)”>“全部刷新”。如果不是Gradle项目,请右键单击项目并选择“配置”>“转换为Gradle(STS)项目”。 - Andreas
问题已经解决,正如JB Nizet所建议的那样,需要使用Buildship,并且像Andreas所说的那样将项目转换为Gradle。谢谢大家。 - cvguy
12个回答

83

你应该使用Gradle Eclipse插件。将以下代码添加到你的build.gradle文件:

apply plugin: "eclipse"

这将向您的构建中添加与 Eclipse 相关的任务。通过执行

gradlew cleanEclipse eclipse

Gradle将根据您的项目当前依赖项重新生成所有Eclipse项目和类路径文件。但是,您需要刷新IDE以使更改可见。

还有一件事要考虑。由于Eclipse实际上并不知道Gradle的依赖关系 - 它只知道生成的类路径文件中的依赖关系 - 新依赖项仅在重新生成这些文件后对Eclipse可见。此外,在Eclipse中添加的依赖项对Gradle构建不可见,并且在重新生成类路径文件后将被删除。


3
脚本实际上应该是 gradle cleanEclipse eclipse(不要加入 w),我尝试编辑,但由于它不是6个字符,所以被阻止了。 - NateH06
@NateH06 gradlew 是正确的。这是 gradle 包装器(可以使用 gradle wrapper 创建)。通过使用包装器,您不会受全局安装的 gradle 版本的限制,而是可以在源代码中指定 gradle 版本。 - dpr
啊,明白了。我没有设置好,所以它没起作用。 - NateH06
gradlew cleanEclipse eclipse 这个命令非常好用。感谢提供这个信息。注意:如果 gradlew 对你不起作用,我们可以尝试使用 gradle。 - SRIHARIRAO M
1
@PSatishPatro 可以放心将此推送到SCM。首先,如果您只是构建您的存储库(至少如果您的构建已正确配置),则不会执行eclipse任务。其次,这些任务中没有任何依赖于任何eclipse二进制文件或资源。 - dpr
显示剩余2条评论

29

对我有用的方法是:

右击build.gradle文件 -> Gradle -> 刷新依赖。


6
好的。我更倾向于使用这个而不是 Eclipse 插件;后者可能会让我的同事感到困惑,因为他们使用的是没有 Eclipse 的 Gradle。理解构建脚本应该是 IDE 的工作。在不依赖 Eclipse 的构建脚本中提到 Eclipse 感觉真的很奇怪。 - Franklin Yu
哇,Eclipse 让我非常困惑。不过还是谢谢你,这对我来说一点都不清楚。 - Matthew Turner
@mtpain - 我也花了半天时间解决这个问题。我不明白为什么Eclipse不能在build.gradle文件更改后自动刷新依赖关系。 - dcp
在Gradle下,刷新Gradle项目是我唯一可用的选项,而且这个方法很有效。 - java-addict301
谢谢。我最不想做的事情就是更改项目配置,以便在我的系统上工作,而其他人的系统上完全正常。 - froggythefrog
请按照以下方法操作:https://dev59.com/8VoT5IYBdhLWcg3wxx3g#63228389 - Sathiamoorthy

18

在Eclipse Neon中将项目导入为Java项目后,您可以:

Right-click on your project --> Configure --> Add Gradle Nature.

您的项目将自动刷新,您将看到Gradle下载所有依赖项。


7

如果您使用的是 Mac,请按照 dpr 提到的方法执行。即在 build.gradle 中添加以下内容:

apply plugin: "eclipse" 

接着运行以下内容:

gradle cleanEclipse eclipse 

7

开启自动构建gradle,使用以下设置以避免此问题:

进入Windows中的Eclipse/STS -> 首选项 -> Gradle,单击Gradle工作区设置,在那里enter image description here启用自动项目同步

当在build.gradle文件中保存更改时,它会自动刷新Gradle。

最后,单击项目-> 清理-> 选择您的项目并单击清理按钮。


4
在Eclipse中,
选择窗口 -> 首选项 -> Gradle
在依赖管理部分
勾选 -> 将jar文件重新映射到Gradle项目。
希望这可以帮助您。

2
这是IDE的一个bug。我在Eclipse和Spring工具套件中都遇到了Gradle依赖问题。
我的真诚建议是,首先尝试右键单击build.gradle文件 -> Gradle -> 刷新依赖项。
如果这个方法不起作用,最好的解决方案是: 1) 从命令提示符中运行gradle clean build --refresh-dependencies。然后创建一个新的工作区并将项目导入该工作区。 2) 如果上述方法失败,则在最坏的情况下需要将项目的git克隆到一个新文件夹中,并按照上述方法进行操作。

1
为了解决这个问题: 1)右键点击build.gradle文件 -> Gradle -> 刷新依赖项。

enter image description here

2) 如果这没有帮助(我也遇到过这种情况) 项目 -> 清理 -> 选择您的项目并按“清理” 输入图像描述

enter image description here


1

在以下位置中将两个类路径变量GRADLE_HOME和GRADLE_REPO添加到eclipse中:

Windows -> Preferences -> Java -> Build Path -> Classpath Variables

GRADLE_HOME需要设置为Gradle安装目录。

GRADLE_REPO需要设置为.gradle文件夹中的缓存文件夹(例如:C:\users\user1\.gradle\caches:该位置将保存来自仓库的jar包)。

变量设置完毕后,请确保build.gradle根据您使用的Eclipse版本定义了适当的插件:

apply plugin 'eclipse'
apply plugin 'eclipse-wtp'

使用以下配置在build.gradle中解决部署问题:

eclipse {
    wtp {
        component {
            libConfigurations += [configurations.runtimeClasspath]
        }
    }
}

然后按照以下步骤进行:
Project -> clean
Right click on the Project ->Gradle ->Refresh Gradle Project

如果上述步骤不能解决问题,建议检查构建过程是否能够从artifactory/nexus下载jars,因为由于身份验证错误或artifactory/nexus jar下载链接错误而导致下载失败。

0

我在从TFS导入Gradle项目时遇到了问题。除非初始导入使用Gradle导入器,否则build.gradle将不会被设置。您必须从Eclipse工作区中删除该项目(不要从磁盘上删除),然后再次将其作为Gradle项目导入。这将根据build.gradle更新构建路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接