V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
byte10
V2EX  ›  程序员

VSCODE 写 Java 全插件攻略

  •  
  •   byte10 · 2020-12-04 10:40:41 +08:00 · 2466 次点击
    这是一个创建于 1232 天前的主题,其中的信息可能已经有所发展或是发生改变。

    vscode 下开发 java

    目前我是使用 vscode 远程开发 java,插件也是安装在远程的。

    java 开发的生产力插件

    • Darcula Theme 作用:Darcula theme for Visual Studio Code based on IntelliJ IDEA
    • IntelliJ IDEA Keybindings
    • Checkstyle for Java 作用:检查代码,因为工作引入了这个 gradle 插件检查,所以我也引入这个插件检查
    • Git Graph 作用:很直观的 git 分支查看,跟 idea 的有得比
    • Gradle Language Support 作用:gradle 项目的支持,可有可无
    • Gradle Tasks 作用:gradle 项目的支持,可有可无
    • Java Decompiler 作用:必须的,不然无法查看其它 jar 包的 class 文件
    • Java Extension Pack 作用:基本的插件了,必须的
      • Language Support for Java(TM) by Red Hat
      • Debugger for Java
      • Java Test Runner
      • Maven for Java
      • Project Manager for Java
      • Visual Studio IntelliCode 智能提示代码
    • Lombok Annotations Support for VS Code
    • Redis 作者: Dunn
    • XML 作者: Red Hat
    • YAML 作者: Red Hat
    • Java P3C Checker 作用: alibaba 规范插件(跟 idea 差不多),Alibaba Java Coding Guidelines Check

    使用感受

    • 1 、实际上 vscode 是无法跟 idea 比的,但是基本开发,调试 啥的还是没什么问题。
    • 2 、具体的细节我还真没研究,idea 也用了三年了,都是简单使用,它确实很智能,比如在 yml 就可以跳到具体的配置类,在 xml 配置的 bean 也可以跳到,在 mybatis 配置 namespace 也能跳到具体接口类。
    • 3 、可以看出 vscode 中 java 不断的完善,从插件更新速度和完整性都可以看到很活跃。至于能达到 idea 多少成的能力,我不好判断,目前开发够用。不建议大家进坑,有遇到问题可以回复我

    优点

    • 1 、当然是使用清爽啦,打开速度还可以,不占内存啦,而且毕竟远程开发(远程开发一定要在局域网内机器,不然难受程度就是王者 460 体验)
    • 2 、vscode 的除了支持 java 还能支持其他语言,我一般开发小程序 也要要用到,所以统一开发体验。
    • 3 、插件丰富,基本它都提示你推荐你一些插件。
    • 4 、其他的 你们补充吧,我懒得写了

    常见问题

    • 如果项目遇到无法运行各种问题,可以执行下面命令

    Java: Clean the Java language server workspace

    • 如果运行中的项目遇到调试问题

    比如某些 web 上下类的属性赋值有问题,(我只遇到过一次,属性始终不变,实际上 idea 也遇到过,就是一些内存问题) ,建议重新打开 vscode,idea 也是要重新打开

    配置文件 settings.json,可以参考下

    {
        "workbench.colorTheme": "Darcula (IntelliJ)",
        "java.semanticHighlighting.enabled": true,
        "git.enableSmartCommit": true,
        "maven.executable.preferMavenWrapper": true,
        "java.import.maven.enabled": true,
        "java.configuration.maven.userSettings": "/opt/apache-maven-3.6.3/conf/settings.xml",
        "maven.executable.path": "/opt/apache-maven-3.6.3/bin/mvn",
        "maven.excludedFolders": [
            "**/.*",
            "**/node_modules",
            "**/target",
            "**/bin"
        ],
        "java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx512m -Xms100m -javaagent:\"/home/android/.vscode-server/extensions/gabrielbb.vscode-lombok-1.0.1/server/lombok.jar\"",
        // "java.home": "/usr/lib/jvm/java-11-openjdk-arm64",
        "java.home": "/usr/local/java11",
        "search.exclude": {
            "bin": true,
            "**/bin": true,
            "**/logs": true,
            "**/target": true
        },
        "maven.pomfile.autoUpdateEffectivePOM": true,
        "maven.terminal.useJavaHome": true,
        "java.completion.importOrder": [
            "java",
            "javax",
            "com",
            "org"
        ],
        "java.configuration.runtimes": [
            {
                "name": "JavaSE-1.8",
                "path": "/usr/local/java1.8",
                "default": true
            },
            {
                "name": "JavaSE-11",
                "path": "/usr/local/java11",
            }
        ],
        "git.autofetch": true,
        "java.configuration.checkProjectSettingsExclusions": false,
       
    }
    
    
    tgich
        1
    tgich  
       2020-12-04 11:32:06 +08:00
    我就说一句,内存不用留着干嘛
    byte10
        2
    byte10  
    OP
       2020-12-04 13:54:44 +08:00
    @tgich 留着看网页呗,chrome 吃内存。远程开发也不占硬盘地方,不占 cpu 和内存。frp 后,ipad 都可以进行远程编程,回家可以处理简单的 BUG 。idea 随便 3-5g,太多了,内存不够多的机器有点吃力。
    AEDaydreamer
        3
    AEDaydreamer  
       2020-12-04 14:40:36 +08:00
    我功能性插件基本和列表的一样,只不过我主题是 one dark pro 还有一个 todo 插件 Todo+
    byte10
        4
    byte10  
    OP
       2020-12-04 14:44:50 +08:00
    @AEDaydreamer TODO 好像是自带的吧?我这边能显示 TODO,不知道是 checkStyle 插件带来的
    fpure
        5
    fpure  
       2020-12-05 14:11:11 +08:00 via Android
    不错,我也是 vscode 一把梭👍🏻
    byte10
        6
    byte10  
    OP
       2020-12-05 16:12:14 +08:00
    @fpure 感觉还行,还没遇到非 idea 不可的 问题
    rehoni
        7
    rehoni  
       2021-11-29 03:06:05 +08:00 via Android
    离线服务器+公司 maven 私服…怎么说
    byte10
        8
    byte10  
    OP
       2021-11-29 14:59:43 +08:00
    @rehoni 离线服务? maven 私服?没明白。我是建议你在内网使用 vscode remote ,外网可以用 frp 穿过去。我这里的远程开发不是远程到 外网的机器,是远程公司内部的一些开发机或者是开发环境提供的一些机器,性能还算可以的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2749 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:50 · PVG 22:50 · LAX 07:50 · JFK 10:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.