把VS Code打造成Java开发IDE

摘要:
最近,该公司推动了合法化,我使用JetBrains教育版,这是不允许商业开发的。因此,它开启了一条艰难的替代IDE选择之路。最后,我选择了轻量级的Visual Studio代码。众所周知,VSCode是一个轻量级的通用编辑器,它依赖于Eclipse这样的大规模插件扩展。各种在线插件推荐文章都是针对VSCode最大的IDE用户群——前端开发人员。VisualStudioCodeMarketplace中README.md的扩展详细信息类似于GitHubPage。

近期,公司推行正版化,本人使用的是JetBrains教育版,是不允许进行商业开发的,因此开启了艰难的备用IDE选型之路。最终,我选定了轻量级的Visual Studio Code(以下简称VS Code)。

各种IDE选型比较的过程就不赘述了,Eclipse、NetBeans、Srping Tools Suite等等,只能说青菜萝卜各有所爱。

插件淘沙

众所周知,VS Code是一款轻量级的通用编辑器,和Eclipse一样全靠海量的插件扩展,网上各类插件推荐文章又都是面向VS Code的最大IDE用户群-前端开发人员的。

无奈之下只能逐一试验,又开始了一轮插件淘沙的过程,最终筛选出几十款插件,详见vscode-java-dev-tools-pack/README.md

定制Extension Pack

插件是筛选出来了,但是几十款插件总不能每次都一个一个去点击安装吧,而且也难以维护。

幸而VS Code自身提供了一种叫Extension Pack的插件,这种插件的目的就是为了汇集一批插件到一起而设计的,安装了一个Extension Pack就会自动安装Pack内的全部插件。

VS Code提供了一套nodejs工具用于辅助开发者创建扩展,同时官方文档中提供了简单明了的文档说明以及丰富的samples,samples包括Command、Color Theme、Tree View等等,本文仅做Extension Pack的示例。

环境准备

环境依赖 nodejs 以及 Git,以MacOS为例,通过Homebrew安装:

brew install node git

然后通过 npm 安装YeomanVS Code Extension Generator

npm install -g yo generator-code

工程初始化

调用Yeoman生成新的Extension Pack

$ yo code


     _-----_     ╭──────────────────────────╮
    |       |    │   Welcome to the Visual  │
    |--(o)--|    │   Studio Code Extension  │
   `---------´   │        generator!        │
    ( _´U`_ )    ╰──────────────────────────╯
    /___A___   /
     |  ~  |
   __'.___.'__
 ´   `  |° ´ Y `

? What type of extension do you want to create?
  New Extension (TypeScript)
  New Extension (JavaScript)
  New Color Theme
  New Language Support
  New Code Snippets
  New Keymap
❯ New Extension Pack
  New Language Pack (Localization)

回车后会提问是否要将当前已安装的扩展安装到新的Extension Pack中,选择Yes会报错

? What type of extension do you want to create? New Extension Pack
? Add the currently installed extensions to the extension pack? Yes
Error code

Command failed: code --list-extensions
/bin/sh: code: command not found

这是因为我的VS Code并不是通过命令行安装的,如果要使用code命令就需要通过命令行安装VS Code,然后重新执行yo code

MacOS上通过Homebrew安装vs code:

brew cask install visual-studio-code

当然也可以选择不自动安装已有扩展,同样可以顺利进行后面的配置。

? What type of extension do you want to create? New Extension Pack
? Add the currently installed extensions to the extension pack? No
? What's the name of your extension? vscode-java-dev-tools-pack
? What's the identifier of your extension? vscode-java-dev-tools-pack
? What's the description of your extension? Some Java develop support tools extension pack.
? Initialize a git repository? Yes
   create vscode-java-dev-tools-pack/.vscode/launch.json
   create vscode-java-dev-tools-pack/package.json
   create vscode-java-dev-tools-pack/vsc-extension-quickstart.md
   create vscode-java-dev-tools-pack/README.md
   create vscode-java-dev-tools-pack/CHANGELOG.md
   create vscode-java-dev-tools-pack/.vscodeignore
   create vscode-java-dev-tools-pack/.gitignore
   create vscode-java-dev-tools-pack/.gitattributes

Your extension vscode-java-dev-tools-pack has been created!

To start editing with Visual Studio Code, use the following commands:

     cd vscode-java-dev-tools-pack
     code .

Open vsc-extension-quickstart.md inside the new extension for further instructions
on how to modify, test and publish your extension.

For more information, also visit http://code.visualstudio.com and follow us @code.

通过Yeoman工具,我们配置了nameidentifierdescription,并且工具自动生成了一个本地git仓库,工程目录结构如下:

$ tree -a -L 1
.
├── .git
├── .gitattributes
├── .gitignore
├── .vscode
├── .vscodeignore
├── CHANGELOG.md
├── README.md
├── package.json
└── vsc-extension-quickstart.md
  • CHANGELOG.md 发布变更记录,在Visutal Studio Code Marketplace的详情页中有该文件的链接。
  • README.md 在Visutal Studio Code Marketplace的扩展详情,作用类似GitHub Page。
  • package.json 扩展的 manifest文件,定义了扩展的相关属性。
  • vsc-extension-quickstart.md 针对生成的工程中文件的简易说明文档。

package.json

作为Extension Pack类型的VS Code 扩展来说,只需要维护package.json就行,package.json中的各项字段可以参考VS Code的官方文档Extension Manifest

也可以参考我的vscode-java-dev-tools-pack/package.json,这是一个比较完整的Demo。

package & publish

微软关于插件打包发布可以参考文档Publishing Extensions

微软提供了vsce这款命令行工具方便开发者进行打包和发布:

npm install -g vsce

安装完成后,cd到工程目录下,进行打包生成.vsix文件

$ vsce package
 DONE  Packaged: /Users/larva-zhang/vscode-java-dev-tools-pack/vscode-java-dev-tools-pack-0.0.1.vsix (7 files, 16.7KB)

注意版本号,是根据package.json文件中的version来生成的,version必须是major.minor.stage的格式

package成功后,需要去vs code创建一个publisher,推荐通过浏览器访问management page创建,比较直观。

也可以通过vsce命令行创建,详见Create a publisher

有了publisher后就能进行publish了,还是在management page页面,通过上传.vsix文件的方式即可,当vs code校验通过后就会发布到Visual Studio Code Marketplace

publish同样可以通过vsce命令行进行,详见Log in to a publisher

总结

插件安装完成后还是需要逐一去配置调试的,这个没法自动化,毕竟各人喜好不同,不过大多数插件都是开箱即用的。

作为开源的轻量级通用编辑器,VS Code的Java开发体验确实不如JetBrains,但和Eclipse一样胜在开源免费,所以还是可堪一用的。

最后给我的Extension Pack打个广告Java Dev Tools Pack
,如有好的插件推荐也欢迎提PR给我。

免责声明:文章转载自《把VS Code打造成Java开发IDE》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(1)vue点击图片预览(可旋转、翻转、缩放、上下切换、键盘操作)比特币交易(Transaction)的输入与输出下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】nginx 和 php-fpm 通信使用unix socket还是TCP,及其配置

原文: http://blog.csdn.net/pcyph/article/details/46513521 -------------------------------------------------------------------------------------------------------------------- 前言 ngi...

LVM 数据迁移

当用作LVM的某磁盘需挪作他用时,我们需要把该磁盘上的数据迁移到其它磁盘 数据迁移有两种方式:1.手动选择迁移位置、2.不选择迁移位置 1.手动选择迁移位置 首先我们查看一下当前pv 空间 [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 ce...

linux 文件系统之superblock

为了实际测试这个pagecache和对裸盘操作的区别,我一不小心敲错命令,将一个磁盘的super_block给抹掉了,全是0, dd if =/dev/zero of=/dev/sda2 bs=4096 count=1 seek=2234789 2234789是我的某个测试文件的起始块,debugfs看到的。 然后我手贱敲成:dd if =/dev/zer...

DEV控件之ChartControl用法

DEV控件之ChartControl用法一、总体概述 这个控件包含3层,最外面的chartControl层、中间的XYDiagram层、最里面的Series层。功能非常强大,但同时使用起来也相对复杂,需要各个层之间相互协调设置才能达到自己想要的效果。 二、chartControl层 像DEV的其它控件一样,这一层之相当于是一个壳子,我们平时在这里面设置的属...

虚拟机virtualbox中挂载新硬盘

在virtualbox中装好Ubuntu后,发现硬盘空间太小,怎样才能增加硬盘容量?那就是再建一个硬盘: 1. 添加新硬盘      设置 -> Storage -> SATA控制器->右击,选择“添加虚拟硬盘”      然后,根据需求创建合适的硬盘 2. 重启虚拟机      查看现有系统的磁盘空间         sudo fd...

基于335X的Linux网口驱动分析

基于335X的linux网口驱动分析 一、 系统构成 1、  硬件平台 AM335X 2、  LINUX内核版本 4.4.12 二、 网口驱动构架(mdio部分) mdio网口驱动部分 使用 总线、设备、驱动模型,总结如下:          若设备和驱动匹配,则执行 davinci_mdio_probe   --> mdiobus_register...