VScode 开发 Java 的插件全攻略,附安卓手机 Linux 远程环境
資深大佬 : byte10 3
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, }
大佬有話說 (0)