Eclipse:如何使 Gradle 只为选定的项目刷新依赖项?
Eclipse: How to make Gradle refresh dependencies only for selected project?
我正在使用 STS/Eclipse 处理几个 Gradle 我已经加载到我的工作区的项目。
一些项目依赖于其他项目,所以我经常需要执行 Gradle 构建到 jar 文件中,然后是 Gradle -> 刷新依赖项并构建我的依赖树。这工作正常,尽管我注意到有时 Gradle 会尝试刷新我工作区中所有项目的依赖项(即使是完全不相关的项目)。
不仅等待 gradle 刷新所有项目既麻烦又耗时,而且还很难调试缓存中依赖项冲突的问题:有时我想禁用一个对项目 A 的特定依赖性,但它仍会加载到缓存中,因为不相关的项目 B 也具有该依赖性。
有没有办法让 gradle 只为我 select 的项目刷新依赖项,而不是我工作区中的所有内容?
作为参考,我在 Eclipse Kepler SR2 (4.3.2) 上使用 STS 版本 3.6.3.RELEASE 使用插件 Gradle IDE 3.6.3.201411271013-RELEASE org.springsource.ide.eclipse.gradle.feature.feature.group
在这种情况下,您可以使用命令提示符进入文件夹并执行以下命令
gradle build
如果你想强制gradle重新下载所有库,你可以使用--refresh-dependencies选项
gradle build --refresh-dependencies
这是 gradle 手册的副本。
The --refresh-dependencies option tells Gradle to ignore all cached
entries for resolved modules and artifacts. A fresh resolve will be
performed against all configured repositories, with dynamic versions
recalculated, modules refreshed, and artifacts downloaded.
看来这毕竟是 STS 上 Gradle 插件的问题。我是如何解决的:
已打开 Window -> 首选项; select编辑了Gradle菜单
禁用 "Remap Jars to maven projects" 和“将 Jars 重新映射到 Gradle
项目”。
- 应用更改。
不确定这是否也是related/necessary,但我也:
打开了外部工具配置菜单(右键单击项目,运行 as -> 外部工具配置)。
转到 "Refresh" 选项卡并将 "Refresh resources upon completition" 选项从 "The entire workspace" 更改为 "The project containing the selected resource" 并应用更改。
- 我不得不在工作区中的每个项目上手动更改此选项。
现在我可以只对 select 的项目执行 gradle 构建和刷新依赖项,而不是工作区中的所有项目。尽管如果我的项目 select 包含缺少依赖项的依赖 jar 文件,这些文件也会被下载到缓存中(这是有道理的)。
在此处找到有关此问题的有用信息:
https://github.com/spring-projects/eclipse-integration-gradle/issues/57
我正在使用 STS/Eclipse 处理几个 Gradle 我已经加载到我的工作区的项目。
一些项目依赖于其他项目,所以我经常需要执行 Gradle 构建到 jar 文件中,然后是 Gradle -> 刷新依赖项并构建我的依赖树。这工作正常,尽管我注意到有时 Gradle 会尝试刷新我工作区中所有项目的依赖项(即使是完全不相关的项目)。
不仅等待 gradle 刷新所有项目既麻烦又耗时,而且还很难调试缓存中依赖项冲突的问题:有时我想禁用一个对项目 A 的特定依赖性,但它仍会加载到缓存中,因为不相关的项目 B 也具有该依赖性。
有没有办法让 gradle 只为我 select 的项目刷新依赖项,而不是我工作区中的所有内容?
作为参考,我在 Eclipse Kepler SR2 (4.3.2) 上使用 STS 版本 3.6.3.RELEASE 使用插件 Gradle IDE 3.6.3.201411271013-RELEASE org.springsource.ide.eclipse.gradle.feature.feature.group
在这种情况下,您可以使用命令提示符进入文件夹并执行以下命令
gradle build
如果你想强制gradle重新下载所有库,你可以使用--refresh-dependencies选项
gradle build --refresh-dependencies
这是 gradle 手册的副本。
The --refresh-dependencies option tells Gradle to ignore all cached entries for resolved modules and artifacts. A fresh resolve will be performed against all configured repositories, with dynamic versions recalculated, modules refreshed, and artifacts downloaded.
看来这毕竟是 STS 上 Gradle 插件的问题。我是如何解决的:
已打开 Window -> 首选项; select编辑了Gradle菜单
禁用 "Remap Jars to maven projects" 和“将 Jars 重新映射到 Gradle 项目”。
- 应用更改。
不确定这是否也是related/necessary,但我也:
打开了外部工具配置菜单(右键单击项目,运行 as -> 外部工具配置)。
转到 "Refresh" 选项卡并将 "Refresh resources upon completition" 选项从 "The entire workspace" 更改为 "The project containing the selected resource" 并应用更改。
- 我不得不在工作区中的每个项目上手动更改此选项。
现在我可以只对 select 的项目执行 gradle 构建和刷新依赖项,而不是工作区中的所有项目。尽管如果我的项目 select 包含缺少依赖项的依赖 jar 文件,这些文件也会被下载到缓存中(这是有道理的)。
在此处找到有关此问题的有用信息:
https://github.com/spring-projects/eclipse-integration-gradle/issues/57