0

环境: Gradle <= 2.5, STS <= 3.7 or Eclipse version <= Luna

使用 Gradle 和 Eclipse(或 STS)很烦人,您必须在开发工作流程中多次执行“Gradle Refresh”或“Gradle RefreshAll”。

以下是您必须执行 Gradle Refresh 或删除项目并“重新导入/又名构建模型”的场景。

1)您执行 Git 拉取并接收对依赖项的更改。很多时候,进来的变化是编译时依赖或testRuntime依赖。

在这些情况下,您会遇到令人讨厌的编译错误。只有在您执行“Gradle Refresh All/Gradle Refresh Dependency”之后才会消失。

2)您在开发过程中自己将新的依赖项添加到您的 build.gradle 中,并且您需要您的代码

3) 用于模式编译的 JAXB 插件 - Gradle JAXB 插件- 使用时,您必须在创建源文件夹之前调用 xjc。我在compileJava.dependsOn xjc这里得到了一些帮助,但仍然远非理想。

如果开发人员更改引用将生成的 JAXB 类的 xsd 和 Java 源xjc。您现在必须先调用xjcorcompileJava然后必须Gradle Refresh Sources通过右键单击模式项目来调用。

另一个超过一年的线程显示出和我一样的挫败感。

  1. 我想知道是否有人遇到过这些问题,或者我是唯一的一个,以及他们是如何处理的。
  2. 如何捕获 gradle eclipse 事件以便可以执行必要的操作?或者 gradle-eclipse 插件调用了什么 Gradle 任务?
4

2 回答 2

1

这可能无法处理您的所有情况,但是当 .gradle 文件更改时,您可以启用“自动刷新依赖项”选项。

在此处输入图像描述

有关此功能的限制的一些信息:

  • 仅刷新“托管”容器中的“Gradle 依赖项”。因此,“必须启用依赖管理才能使其正常工作”。

  • 不执行任务,它只刷新容器中的依赖项,没有别的。

于 2015-08-27T15:45:00.877 回答
0

回答您问题的略有不同的方面。您询问了“ gradle-eclipse 插件调用了什么 Gradle 任务”。您确实可以控制这一点。使用向导导入项目时,可以指定导入前后要执行的任务。在执行“全部刷新”时也会执行这些相同的任务。

在此处输入图像描述

于 2015-08-27T16:37:30.353 回答