把 VS Code打造成 Java 開發(fā) IDE,這也行?
點擊“開發(fā)者技術(shù)前線”,選擇“星標”
讓一部分開發(fā)者看到未來

作者:LarvaZhang
cnblogs.com/larva-zhh/p/13723530.html
近期,公司推行正版化,本人使用的是JetBrains教育版,是不允許進行商業(yè)開發(fā)的,因此開啟了艱難的備用IDE選型之路。最終,我選定了輕量級的Visual Studio Code(以下簡稱VS Code)。
各種IDE選型比較的過程就不贅述了,Eclipse、NetBeans、Srping Tools Suite等等,只能說青菜蘿卜各有所愛。
插件淘沙
眾所周知,VS Code是一款輕量級的通用編輯器,和Eclipse一樣全靠海量的插件擴展,網(wǎng)上各類插件推薦文章又都是面向VS Code的最大IDE用戶群-前端開發(fā)人員的。
無奈之下只能逐一試驗,又開始了一輪插件淘沙的過程,最終篩選出幾十款插件,詳見
https://github.com/larva-zhang/vscode-java-dev-tools-pack/blob/master/README.md
定制Extension Pack
插件是篩選出來了,但是幾十款插件總不能每次都一個一個去點擊安裝吧,而且也難以維護。
幸而VS Code自身提供了一種叫Extension Pack的插件,這種插件的目的就是為了匯集一批插件到一起而設(shè)計的,安裝了一個Extension Pack就會自動安裝Pack內(nèi)的全部插件。
VS Code提供了一套nodejs工具用于輔助開發(fā)者創(chuàng)建擴展,同時官方文檔中提供了簡單明了的文檔說明以及豐富的samples,samples包括Command、Color Theme、Tree View等等,本文僅做Extension Pack的示例。
環(huán)境準備
環(huán)境依賴 nodejs 以及 Git,以MacOS為例,通過Homebrew安裝:
brew install node git
然后通過 npm 安裝Yeoman和VS Code Extension Generator:
npm install -g yo generator-code
工程初始化
調(diào)用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,然后重新執(zhí)行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工具,我們配置了name、identifier、description,并且工具自動生成了一個本地git倉庫,工程目錄結(jié)構(gòu)如下:
$ tree -a -L 1
.
├── .git
├── .gitattributes
├── .gitignore
├── .vscode
├── .vscodeignore
├── CHANGELOG.md
├── README.md
├── package.json
└── vsc-extension-quickstart.md
CHANGELOG.md發(fā)布變更記錄,在Visutal Studio Code Marketplace的詳情頁中有該文件的鏈接。README.md在Visutal Studio Code Marketplace的擴展詳情,作用類似GitHub Page。package.json擴展的 manifest文件,定義了擴展的相關(guān)屬性。vsc-extension-quickstart.md針對生成的工程中文件的簡易說明文檔。
package.json
作為Extension Pack類型的VS Code 擴展來說,只需要維護package.json就行,package.json中的各項字段可以參考VS Code的官方文檔:
https://code.visualstudio.com/api/references/extension-manifest
也可以參考我的vscode-java-dev-tools-pack/package.json,這是一個比較完整的Demo。
https://github.com/larva-zhang/vscode-java-dev-tools-pack/blob/master/package.json
package & publish
微軟關(guān)于插件打包發(fā)布可以參考文檔:
https://code.visualstudio.com/api/working-with-extensions/publishing-extension
微軟提供了vsce這款命令行工具方便開發(fā)者進行打包和發(fā)布:
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)
注意版本號,是根據(jù)package.json文件中的version來生成的,version必須是major.minor.stage的格式
package成功后,需要去vs code創(chuàng)建一個publisher,推薦通過瀏覽器訪問management page創(chuàng)建,比較直觀。
https://marketplace.visualstudio.com/manage
也可以通過vsce命令行創(chuàng)建,詳見:
https://code.visualstudio.com/api/working-with-extensions/publishing-extension#create-a-publisher
有了publisher后就能進行publish了,還是在management page頁面,通過上傳.vsix文件的方式即可,當vs code校驗通過后就會發(fā)布到Visual Studio Code Marketplace。
publish同樣可以通過vsce命令行進行,詳見:
https://code.visualstudio.com/api/working-with-extensions/publishing-extension#log-in-to-a-publisher
總結(jié)
插件安裝完成后還是需要逐一去配置調(diào)試的,這個沒法自動化,畢竟各人喜好不同,不過大多數(shù)插件都是開箱即用的。
作為開源的輕量級通用編輯器,VS Code的Java開發(fā)體驗確實不如JetBrains,但和Eclipse一樣勝在開源免費,所以還是可堪一用的。
— 完 —
點這里??關(guān)注我,記得標星呀~
前線推出學習交流一定要備注:研究/工作方向+地點+學校/公司+昵稱(如JAVA+上海+上交+可可),根據(jù)格式備注,可更快被通過且邀請進群
掃碼加小編微信,進群和大佬們零距離
END 后臺回復(fù)“電子書” “資料” 領(lǐng)取一份干貨,數(shù)百面試手冊等你 開發(fā)者技術(shù)前線 ,匯集技術(shù)前線快訊和關(guān)注行業(yè)趨勢,大廠干貨,是開發(fā)者經(jīng)歷和成長的優(yōu)秀指南。 歷史推薦
華為鴻蒙操作系統(tǒng)入門到精通,官方教程來了! 京東面試官:SQL 語句中 left join 后用 on 還是 where,區(qū)別大了! 面試官問我:用了HTTPS就安全了嗎?用了HTTPS會被抓包嗎?我竟然回答不上來... Java這個高級特性,很多人還沒用過! 好文點個在看吧
