提升 Visual Studio Code 中的 Java 开发体验:体验全新的 Gradle 构建服务器

2023-10-26 16:55:07 +08:00
 winffee

近年来,Gradle 凭借其允许用户灵活地配置构建流程及强大的可拓展性,已经成为了最流行的 Java 构建工具之一。在 VS Code 中,用户也可以将 Gradle 项目导入工作空间进行开发。然而目前对于 Gradle 项目的支持,还有一些不尽如人意的地方,其中被用户吐槽最多的问题有两点:

什么是构建服务协议( BSP )

构建服务协议,即 Build Server Protocol(以下简称 BSP )。这个名字听上去和另一个协议:语言服务协议( Language Server Protocol ,以下简称 LSP )很像。LSP 诞生的目的,是希望能够在开发工具和开发语言之间形成一层抽象层。在有了这层抽象的前提下,不同开发工具如果要支持某一编程语言,可以不必各自去实现诸如代码分析这样复杂的功能,而只需要正确地响应 LSP 所规定的事件即可。更多关于 LSP 的介绍,可以查看 LSP 的官方网站,这里就不再展开了。

BSP 受 LSP 的启发,希望在开发工具和构建工具之间形成一层抽象层,提供一种统一地信息交换方式。同时 BSP 也是对 LSP 的一个很好的补充,LSP 关注于代码分析相关的功能,例如代码补全,代码导航等。而 BSP 则关注于代码的构建,运行及测试。两者相结合,形成了一个代码开发的闭环。

目前 BSP 协议在 Scala 开发生态圈中已经有了比较广泛的应用,读者可以在其官方网站上看到目前已知的基于 BSP 的项目

为什么选择 Gradle

除了可以解决文章开头提到的目前 VS Code Java 对 Gradle 项目支持存在的问题之外。Gradle 丰富的 Tooling API 也是驱使我们优先选择实现一个面向 Gradle 的构建服务的原因之一。目前来看,BSP 中所涉及到的几乎绝大部分请求,都可以通过 Gradle Tooling API 实现。

关于我们目前实现的 Gradle 构建服务具体的设计思路和细节,将会在后续的文章进行分享,请大家持续关注!

如何试用

如果您想要在 VS Code 中尝试一下基于 Gradle 构建服务的全新的 Gradle 项目开发体验,可参考下列步骤:

**第一步 – 安装 Extension Pack for Java 插件。 **

**第二步 – 安装 Gradle for Java 插件。 **

第三步 – 在 VS Code 中打开 Gradle 项目即可。如果该项目曾经已经在 VS Code 中打开过,请打开命令面板( F1 ),执行命令 Java: Clean Java Language Server Workspace > Reload and delete 。

目前 Gradle 构建服务暂时不支持 Android 项目。Gradle 构建服务在启动后,会在 VS Code Output Channel 中输出服务运行的状态信息。如果在项目加载后,没有在 Output Channel 中看到任何输出,请重新尝试执行命令 Java: Clean Java Language Server Workspace > Reload and delete

第四步 – 检查 Gradle 构建服务器状态输出

未来计划

我们在未来会持续维护并增强 Build Server for Gradle 项目。除了修复 Bugs 提升正确率和稳定性之外,我们还计划将运行( Run )和测试( Test )也委托给 Gradle 执行。这样一来,即使用户在 Gradle 脚本中为测试或者运行任务自定义了复杂的构建流程,也可以直接交给 Gradle ,无需在开发工具中进行额外的配置,做到开箱即用的体验。

如果您在试用过程中遇到任何问题,建议或者有想要实现的功能,欢迎通过发布 GitHub Issue 的方式告诉我们。

安装 Java 插件包

要使用上述所有功能,请在 Visual Studio Code 上下载并安装Extension Pack for Java

如果您是一位 Spring 开发者,并且正在编写 Spring Boot 相关的程序,您也可以下载并安装Spring Boot 插件包,获得与 Spring Boot 有关的专属开发体验。

1158 次点击
所在节点    Visual Studio Code
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/985713

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX