大家好,欢迎来到 7 月版的 Visual Studio Code Java 更新。在这篇文章中,我们将分享我们整体产品路线图的进展,并重点介绍我们全新的测试体验,以及在 Maven 和项目管理相关的改进。让我们开始吧!
随着 Visual Studio Code 1.59.0 正式版本的发布,全新的插件测试 API 也从试验版本进入了正式版本。自 2020 年 9 月起至今,经过了将近一年及数次版本迭代的打磨,不管是 API 的功能性还是易用性,与首个预览版本相比都获得了极大的提升。其中 Java Test Runner (包含在 Java 扩展包中)作为首批采用了测试 API 的插件,也发布了全新的 0.31.0 版本,在功能和用户体验上迎来了许多新的提升和亮点。接下来我们就通过 Java Test Runner 插件,看看新的测试 API 能帮助插件在测试的使用场景下提供哪些功能!
全新的 Testing Decoration
现在用户可以在编辑器左侧区域看到一排新的按钮( Testing Decoration ),直接点击会立即运行该行对应的测试用例,右键则能看到更多的选项。与过去的 Code Lens 不同,它可以减少在编辑区域内对用户的干扰。
功能更强大的测试浏览器
测试浏览器( Testing Explorer )焕然一新,现在用户可以自定义浏览器的显示方式和排序方式,以满足不同的场景和习惯。用户也可以直接通过测试浏览器来运行或者调试测试。
另外新的测试浏览器内嵌了搜索栏的支持,帮助用户快速查找目标测试用例,加速开发效率。
内容更丰富的 Test Message
新的测试 API 允许插件在编辑区域内嵌显示测试执行结果等内容,更方便快捷地查看错误和堆栈信息:
想了解更多关于新测试功能的特性, 请访问 官方文档
除了测试体验,我们还对 Maven 依赖管理做了一些改进。具体来说,我们改进了 Maven 依赖树的界面,使其更加人性化。此外,我们意识到 Maven 依赖冲突有时会较难处理,有时 Maven 可能无法按照我们希望的方式自动解决冲突,这可能会导致我们在运行应用程序时出错。因此,我们对 Maven 扩展进行了一些更改,以更好地在界面中展示 Maven 如何解决依赖冲突。另外,Maven POM 中的冲突将直观地出现在 Terminal 的错误 Tab 中。在用户单击这些错误后,Visual Studio Code 将提示开发人员修复冲突并选择要使用的依赖项。下图展示了如何帮助用户快速解决冲突的案例。
除了测试和依赖管理,我们还改进了项目管理相关的功能。具体而言,我们修复了项目浏览器无法正常工作的几个问题。这是我们所做的增强 /错误修复的列表。
上个月,我们分享了未来几个月的路线图。在博客中,我们提到了几个领域作为我们的重点
作为 7 月博客的一部分,我们希望给大家更新一下目前的进展。绿色标记的文字是我们取得重要进展的领域。正如前面部分所述,我们在改进整体测试 API 体验方面迈出了一大步。在接下来的几个月中,我们还将继续添加更多与测试相关的功能(例如测试覆盖率)。在构建工具方面,我们一直在改进我们的 Maven 体验,与此同时我们将继续致力于更好的 Gradle 支持。最后,我们已经在 Java 开发环境中支持了受信任 /不受信任的工作区,因此我们在安全方面也有了较显著的进展。
对于路线图中提到的其他领域,我们一直在积极改善相关的体验,并将在取得重要进展时提供更新。
请积极使用我们的产品!您的反馈和建议对我们非常重要,并将帮助我们做得更好。 有几种方法可以给我们留下反馈
以下链接和资源能帮助您更好地了解 Java on Visual Studio Code 的相关信息
1
zmlu 2021-08-10 11:51:57 +08:00 2
不好意思 我用 IDEA
|
2
razertory 2021-08-10 13:28:12 +08:00
体验过一个月,换回 IDEA,最大的感受就是卡,跳转搜索批量替换都卡。。。
|
3
waiaan 2021-08-10 14:04:09 +08:00
如何查看导入包的源码,比如:
```java import org.springframework.web.multipart.MultipartFile; ``` 右键单击选择“转到定义”,出来的是 ```java // Failed to get sources. Instead, stub sources have been generated by the disassembler. // Implementation of methods is unavailable. package org.springframework.web.multipart; public abstract interface MultipartFile extends org.springframework.core.io.InputStreamSource{ ... } ``` 并不是源码 |
4
Mav 2021-08-10 14:09:51 +08:00 1
IDEA - Java IDE 界唯一的神。
|
5
cweijan 2021-08-10 14:57:43 +08:00
希望 vscode 的 gradle 可以支持使用自定义版本, 而不是每打开一个 gradle 项目就下载一个 gradle, 比 npm 还恶心.
|
6
byte10 2021-08-10 15:05:03 +08:00
@razertory 这个还好吧,批量替换说卡的话,那就太黑了。vscode 的优势在于简单,清爽。
@Mav idea 写前端不友好,vscode 可以写很多语言,这样开发体验保持一致体验(全栈)。还有啥简单的数据库插件,redis 插件,git graph 也是很好用的一个工具,跟 gitup 有的一比,当然这些你是体会不会到的。至于内存上的占用也还算比较少一些。vscode 目前最核心的还是 remote code,手上只要有一台双核笔记本+一台安卓手机 linux,就可以完成日常开发工作,局域网内不会有延迟,开发环境无缝切换,携带手机回家就可以了。当然不推荐你用 vscode,也不推荐大部分人用 vscode,idea 还是比较顺畅一些,不管是布局还是项目的衔接,还是 idea 强很多,自成一体。 |
7
IgniteWhite 2021-08-10 15:31:57 +08:00 via iPhone
Vim 党都不敢给别人推荐写 java,因为有 IDEA,vscode 竟然也敢哈哈
|
8
qwerthhusn 2021-08-10 17:26:20 +08:00
我在想 eclipse 和 netbeans 还在更新吗?还有人用吗?
|
9
learningman 2021-08-10 17:42:58 +08:00
@cweijan #5 idea 也是这么干的(确信)
|
10
cweijan 2021-08-10 17:52:10 +08:00
@learningman 对, 但是 idea 可以配置用本地的, vscode 的 gradle 扩展不行.
|
11
learningman 2021-08-10 18:01:45 +08:00 1
@cweijan 因为 gradle-wrapper 就是这个设计啊,有的大项目 gradle 换个版本可能就构建不出来了,也不差这点硬盘,无所谓了。
|
12
yitingbai 2021-08-10 20:12:43 +08:00 2
Java 这一亩三分地, 只要 IDEA 还在, 其他编辑器就不要自取其辱了
|
13
kchenzhi 2021-08-11 09:35:06 +08:00
远程开发模式下,无法查看 parent 的 pom 文件内容,请问有办法解决吗?
|
14
dreamramon 2021-08-18 08:05:06 +08:00
vscode remote 确实太爽了,不过 java 一般不需要直接连到服务器编程。。。
|
15
byte10 2021-08-18 16:22:27 +08:00
@IgniteWhite vscode 应该比 vim 强大多吧
@dreamramon 是很爽的, 远程开发可以统一环境,其实挺好的。在公司远程局域网机器,在家里只要连接上 vpn 就好,或者内网穿透,轻度开发没问题。 |
16
jdneo 2021-08-27 11:23:34 +08:00
|
17
jdneo 2021-08-27 11:25:00 +08:00
@cweijan
应该是可以指定 gradle 版本的,先把`java.import.gradle.wrapper.enabled`关闭,然后在配置`java.import.gradle.version` |
20
RedBeanIce 2021-08-30 09:58:36 +08:00
期待 vscode 暴打 idea
|
21
jdneo 2021-09-04 15:16:33 +08:00
@waiaan 可以开一个 issue,给一下重现步骤我们看一下: https://github.com/microsoft/vscode-java-pack/issues
|
22
q447643445 2021-09-05 14:26:23 +08:00
今天试了下. 用 vsc 开发 最终失败告终
一直搞不定环境搭建 |
23
jdneo 2021-09-07 09:28:38 +08:00
@kchenzhi 如果可以的吧,请把重现步骤提供在这个 issue 下: https://github.com/microsoft/vscode-maven/issues/730
|