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

VScode 开发 Java 的插件全攻略,附安卓手机 Linux 远程环境

  •  
  •   byte10 · 363 天前 · 2297 次点击
    这是一个创建于 363 天前的主题,其中的信息可能已经有所发展或是发生改变。

    vscode 下开发 java

    有不少 V 友在问 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 也是要重新打开

    远程开发(安卓环境)

    我之前说过其实晓龙的 865 CPU (约等于 I5 8520U 体验 )进行普通的研发完全没问题的(尤其是脚本语言开发,比如 nodejs,python 这些)。

    首先要创建 linux 环境

    • 1 、安装安卓 app aid learning,实际原理就是用 termux 。里面已经安装好很多远程的 vscode web 开发。python 环境等,xfce4 桌面,Vnvserver 等
    • 2 、另外你也可以使用 UTermux (有各种别人打包好的系统,可以上 QQ,开 idea 等), 也安装了 vncserver ,xfce4 。
    • 3 、使用 linux deploy 需要安卓 root,这个创建出来的系统是最完整的,最稳定的,性能应该也比较强。挺不错的,目前我用的就是这个,我自己也安装了 vncserver ,xfce4,打开谷歌网页超快。。。

    然后没了。。。因为就是一个完整的 linux 系统了。然后该干嘛干嘛呗。

    性能强劲,写 nodejs,python 这些完全没问题。

    写 java 也很 OK,那是假的。。实际上手机环境跑 java 还是有些吃力,应该稍低于 i5-8 代低压 U,CPU 的水平还是差了一些,要是有 A14 那么强就碉堡了。写点普通的微服务完全没问题,大型的项目还是不够给力。不过手机有 8G 内存,还是能跑 5-6 个服务的,挺香的。比如 18 款的编译 30 秒,这个 865 要 45 秒。大概是这样的水平把,还是挺快的,够用 。

    嗯 远程真香。。等 M1 到手后,再测试 M1 arm java 性能。

    配置文件 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,
       
    }
    
    
    目前尚无回复
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3045 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:32 · PVG 18:32 · LAX 02:32 · JFK 05:32
    ♥ Do have faith in what you're doing.