VSCODE 写 Java 全插件攻略 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
byte10
V2EX    程序员

VSCODE 写 Java 全插件攻略

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

    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
    strong>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     Solana     5913 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 02:46 PVG 10:46 LAX 19:46 JFK 22:46
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86