Buildship 2.0新功能详细介绍

143 阅读4分钟

我们很高兴地宣布,Buildship的2.0版本--我们对Eclipse的官方Gradle支持--现在已经可以通过Eclipse Marketplace获得。这个版本增加了对复合构建的支持,大大缩短了开发周转时间。基于1.x线期间大量的社区反馈,UI已经被重新设计了项目同步现在更加准确项目导入少了一个步骤。我们增加了对Gradle离线模式的支持(感谢Rodrigue!),最后但并非最不重要的是,第三方集成商可以利用我们新的InvocationCustomizer 扩展点。请继续阅读关于这些新功能的每一个细节。

复合构建支持

什么是复合构建?

Gradle的复合构建功能允许你处理几个不同的Gradle构建,就像它们是一个大的多项目构建一样。当你需要在几个通常单独开发的项目上工作时,这极大地缩短了周转时间。

假设你写了一个Java库lib ,被你的许多应用程序使用。你发现了一个只在special-app 。传统的开发工作流程是修改lib 中的一些代码,并将快照安装到本地存储库。然后你将不得不改变special-app 的构建脚本,以使用新的快照,并检查该错误是否真的被修复。

然而,通过复合构建,你可以告诉Gradle将这两个项目视为一个。这将使special-app 直接依赖于lib 项目的输出。

你可以在这篇介绍性的博文中了解更多关于复合构建的信息。

IDE中的复合构建

如果你开发了special-app ,你可能已经在 Eclipse 中导入了它,并将lib 作为一个二进制依赖关系来引用。

image.png

在命令行中使用复合构建和在 Eclipse 中使用它们没有什么区别。要包含lib ,你只需要在你的settings.gradle 文件中添加一个条目,告诉Gradle应该从哪个文件夹中包含这个额外的构建。

includeBuild '../lib'

然后,要应用这些变化,请右击项目并选择Gradle > Refresh Project 。在同步完成后,你应该看到两件事:从包含的构建中的项目被导入,二进制依赖被替换成项目依赖。

image.png

现在,你可以在完整的IDE支持下对两个项目进行修改:错误标记、代码完成、重构等等。此外,如果你从Gradle Tasks 视图中执行Gradle测试或任何其他构建任务,执行时将考虑到来自所含构建的变化。

image.png

限制因素

当从IDE中使用复合构建时,你应该注意以下限制:

  • 只有当导入的项目使用Gradle 3.3或更高版本时,复合构建支持才有效。
  • 由于Gradle中的任务寻址限制,任务执行在包含的构建中被禁用。
  • 不支持将WTP项目纳入一个复合体。

设计大调整

我们更新了 Buildship 用户界面,使其与当前的 Gradle 品牌以及 Eclipse 设计指南保持一致。图标现在可以被色盲人士区分开来,并且与Eclipse的暗色主题配合得很好。最后,高清晰度的图像已经到位,可以在高DPI显示器上使用。

image.png

简化导入向导

我们从导入和新项目向导中删除了JAVA_HOME、程序参数和JVM参数配置。用户仍然可以通过gradle.properties 文件来配置这些属性。

更准确的项目同步

在 Buildship 1.x 中,如果正在导入的项目有 Eclipse 描述符,则会显示一个对话框来确定是否应更新或删除这些描述符。这种行为很容易出错,而且会分散用户的注意力。

为了避免显示对话框,我们以如下方式改进了项目同步算法。如果项目使用的Gradle版本可以提供一个特定的属性(例如项目性质),它将被完全覆盖。只有当Gradle没有提供该属性的信息时,手动修改才会被保留。这使得旧版Gradle的用户可以绕过模型中缺失的信息,同时给新版Gradle的用户一个更一致的体验。

离线模式支持

用户现在可以通过工作区首选项将 Buildship 设置为离线工作。一旦启用,所有Gradle调用将收到一个额外的--offline 参数。

image.png

InvocationCustomizer 扩展点

InvocationCustomizer 扩展点使Eclipse插件能够为Gradle构建贡献额外参数。这允许集成商添加初始脚本或从IDE中控制项目属性。关于实施样本,请查看Buildship文档

突破性变化

这个版本引入了以下突破性变化:

  • 最低Java版本设置为1.7
  • 最低Eclipse版本设置为4.2
  • 对于直接位于Eclipse工作区位置下的项目,禁用项目重命名。
  • 从Eclipse Mars直接迁移到Eclipse Oxygen的项目需要重新导入
  • 在导入时不能再配置JAVA_HOME,请使用gradle.properties
  • Java参数和Gradle属性不能再在导入时配置,请使用gradle.properties

安装

Buildship 2.0 可从Eclipse Marketplaceeclipse.org更新站点获得。请注意,更新网站的URL已经改变,因此这个版本没有自动更新。