V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
winffee
V2EX  ›  Visual Studio Code

Java on Visual Studio Code 的更新 – 2021 年 7 月

  •  
  •   winffee · 2021-08-10 11:13:07 +08:00 · 5468 次点击
    这是一个创建于 1228 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,欢迎来到 7 月版的 Visual Studio Code Java 更新。在这篇文章中,我们将分享我们整体产品路线图的进展,并重点介绍我们全新的测试体验,以及在 Maven 和项目管理相关的改进。让我们开始吧!

    全新的 Java 测试体验

    随着 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 不同,它可以减少在编辑区域内对用户的干扰。

    test decoration

    功能更强大的测试浏览器

    测试浏览器( Testing Explorer )焕然一新,现在用户可以自定义浏览器的显示方式和排序方式,以满足不同的场景和习惯。用户也可以直接通过测试浏览器来运行或者调试测试。

    testing explorer

    另外新的测试浏览器内嵌了搜索栏的支持,帮助用户快速查找目标测试用例,加速开发效率。

    search box

    内容更丰富的 Test Message

    新的测试 API 允许插件在编辑区域内嵌显示测试执行结果等内容,更方便快捷地查看错误和堆栈信息:

    test message

    想了解更多关于新测试功能的特性, 请访问 官方文档

    Maven 依赖管理体验改进

    除了测试体验,我们还对 Maven 依赖管理做了一些改进。具体来说,我们改进了 Maven 依赖树的界面,使其更加人性化。此外,我们意识到 Maven 依赖冲突有时会较难处理,有时 Maven 可能无法按照我们希望的方式自动解决冲突,这可能会导致我们在运行应用程序时出错。因此,我们对 Maven 扩展进行了一些更改,以更好地在界面中展示 Maven 如何解决依赖冲突。另外,Maven POM 中的冲突将直观地出现在 Terminal 的错误 Tab 中。在用户单击这些错误后,Visual Studio Code 将提示开发人员修复冲突并选择要使用的依赖项。下图展示了如何帮助用户快速解决冲突的案例。

    maven dependency

    项目管理

    除了测试和依赖管理,我们还改进了项目管理相关的功能。具体而言,我们修复了项目浏览器无法正常工作的几个问题。这是我们所做的增强 /错误修复的列表。

    • 在没有构建工具的情况下创建项目时,默认明确设置输出路径 (Issue #523)
    • 编辑时 Java 项目资源管理器意外扩展 (Issue #502)
    • 从 Java Project Explorer 中删除包时无法自动刷新 (Issue #458)
    • 当我保存文件时,"EXPLORER"会自动展开并显示 (Issue #430)
    • 打开不在类路径上的文件时观察到异常 (Issue #494)

    产品路线图进展更新

    上个月,我们分享了未来几个月的路线图。在博客中,我们提到了几个领域作为我们的重点

    • 基本开发体验的持续改善
    • 构建工具 ( Maven / Gradle)
    • 远程开发 / Codespaces 支持
    • 测试
    • 安全
    • 调试 (探索虚拟线程)

    作为 7 月博客的一部分,我们希望给大家更新一下目前的进展。绿色标记的文字是我们取得重要进展的领域。正如前面部分所述,我们在改进整体测试 API 体验方面迈出了一大步。在接下来的几个月中,我们还将继续添加更多与测试相关的功能(例如测试覆盖率)。在构建工具方面,我们一直在改进我们的 Maven 体验,与此同时我们将继续致力于更好的 Gradle 支持。最后,我们已经在 Java 开发环境中支持了受信任 /不受信任的工作区,因此我们在安全方面也有了较显著的进展。

    对于路线图中提到的其他领域,我们一直在积极改善相关的体验,并将在取得重要进展时提供更新。

    反馈与建议

    请积极使用我们的产品!您的反馈和建议对我们非常重要,并将帮助我们做得更好。 有几种方法可以给我们留下反馈

    • 在这个帖子下留言
    • 在我们的 GitHub repo 上创建Issue

    资源

    以下链接和资源能帮助您更好地了解 Java on Visual Studio Code 的相关信息

    24 条回复    2021-09-09 07:53:21 +08:00
    zmlu
        1
    zmlu  
       2021-08-10 11:51:57 +08:00   ❤️ 2
    不好意思 我用 IDEA
    razertory
        2
    razertory  
       2021-08-10 13:28:12 +08:00
    体验过一个月,换回 IDEA,最大的感受就是卡,跳转搜索批量替换都卡。。。
    waiaan
        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{
    ...
    }
    ```

    并不是源码
    Mav
        4
    Mav  
       2021-08-10 14:09:51 +08:00   ❤️ 1
    IDEA - Java IDE 界唯一的神。
    cweijan
        5
    cweijan  
       2021-08-10 14:57:43 +08:00
    希望 vscode 的 gradle 可以支持使用自定义版本, 而不是每打开一个 gradle 项目就下载一个 gradle, 比 npm 还恶心.
    byte10
        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 强很多,自成一体。
    IgniteWhite
        7
    IgniteWhite  
       2021-08-10 15:31:57 +08:00 via iPhone
    Vim 党都不敢给别人推荐写 java,因为有 IDEA,vscode 竟然也敢哈哈
    qwerthhusn
        8
    qwerthhusn  
       2021-08-10 17:26:20 +08:00
    我在想 eclipse 和 netbeans 还在更新吗?还有人用吗?
    learningman
        9
    learningman  
       2021-08-10 17:42:58 +08:00
    @cweijan #5 idea 也是这么干的(确信)
    cweijan
        10
    cweijan  
       2021-08-10 17:52:10 +08:00
    @learningman 对, 但是 idea 可以配置用本地的, vscode 的 gradle 扩展不行.
    learningman
        11
    learningman  
       2021-08-10 18:01:45 +08:00   ❤️ 1
    @cweijan 因为 gradle-wrapper 就是这个设计啊,有的大项目 gradle 换个版本可能就构建不出来了,也不差这点硬盘,无所谓了。
    yitingbai
        12
    yitingbai  
       2021-08-10 20:12:43 +08:00   ❤️ 2
    Java 这一亩三分地, 只要 IDEA 还在, 其他编辑器就不要自取其辱了
    kchenzhi
        13
    kchenzhi  
       2021-08-11 09:35:06 +08:00
    远程开发模式下,无法查看 parent 的 pom 文件内容,请问有办法解决吗?
    dreamramon
        14
    dreamramon  
       2021-08-18 08:05:06 +08:00
    vscode remote 确实太爽了,不过 java 一般不需要直接连到服务器编程。。。
    byte10
        15
    byte10  
       2021-08-18 16:22:27 +08:00
    @IgniteWhite vscode 应该比 vim 强大多吧
    @dreamramon 是很爽的, 远程开发可以统一环境,其实挺好的。在公司远程局域网机器,在家里只要连接上 vpn 就好,或者内网穿透,轻度开发没问题。
    jdneo
        16
    jdneo  
       2021-08-27 11:23:34 +08:00
    @waiaan 你是用的 Maven 吗?第一次打开的时候如果发现没有 source jar 回去下载,下载好后下次再打开就有 source 了,可以试一下。

    如果还是不行的话,建议去开个 issue
    jdneo
        17
    jdneo  
       2021-08-27 11:25:00 +08:00
    @cweijan

    应该是可以指定 gradle 版本的,先把`java.import.gradle.wrapper.enabled`关闭,然后在配置`java.import.gradle.version`
    waiaan
        18
    waiaan  
       2021-08-27 11:42:45 +08:00
    @jdneo
    并没有下载 source 和 doc,只能手动执行 maven 命令下载。
    cweijan
        19
    cweijan  
       2021-08-27 15:23:42 +08:00
    @jdneo 看了文档, 确实可以设置
    RedBeanIce
        20
    RedBeanIce  
       2021-08-30 09:58:36 +08:00
    期待 vscode 暴打 idea
    jdneo
        21
    jdneo  
       2021-09-04 15:16:33 +08:00
    @waiaan 可以开一个 issue,给一下重现步骤我们看一下: https://github.com/microsoft/vscode-java-pack/issues
    q447643445
        22
    q447643445  
       2021-09-05 14:26:23 +08:00
    今天试了下. 用 vsc 开发 最终失败告终
    一直搞不定环境搭建
    jdneo
        23
    jdneo  
       2021-09-07 09:28:38 +08:00
    @kchenzhi 如果可以的吧,请把重现步骤提供在这个 issue 下: https://github.com/microsoft/vscode-maven/issues/730
    zxCoder
        24
    zxCoder  
       2021-09-09 07:53:21 +08:00 via Android
    @byte10 idea 写前端不友好怎么说,我记得好像可以装插件完全替代 webstorm 的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5165 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:11 · PVG 17:11 · LAX 01:11 · JFK 04:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.