如何把VS Code打造成Java開(kāi)發(fā)IDE
近期,公司推行正版化,本人使用的是JetBrains教育版,是不允許進(jìn)行商業(yè)開(kāi)發(fā)的,因此開(kāi)啟了艱難的備用IDE選型之路。最終,我選定了輕量級(jí)的Visual Studio Code(以下簡(jiǎn)稱VS Code)。
各種IDE選型比較的過(guò)程就不贅述了,Eclipse、NetBeans、Srping Tools Suite等等,只能說(shuō)青菜蘿卜各有所愛(ài)。
插件淘沙
眾所周知,VS Code是一款輕量級(jí)的通用編輯器,和Eclipse一樣全靠海量的插件擴(kuò)展,網(wǎng)上各類插件推薦文章又都是面向VS Code的最大IDE用戶群-前端開(kāi)發(fā)人員的。
無(wú)奈之下只能逐一試驗(yàn),又開(kāi)始了一輪插件淘沙的過(guò)程,最終篩選出幾十款插件,詳見(jiàn)vscode-java-dev-tools-pack/README.md。
定制Extension Pack#
插件是篩選出來(lái)了,但是幾十款插件總不能每次都一個(gè)一個(gè)去點(diǎn)擊安裝吧,而且也難以維護(hù)。
幸而VS Code自身提供了一種叫Extension Pack的插件,這種插件的目的就是為了匯集一批插件到一起而設(shè)計(jì)的,安裝了一個(gè)Extension Pack就會(huì)自動(dòng)安裝Pack內(nèi)的全部插件。
VS Code提供了一套nodejs工具用于輔助開(kāi)發(fā)者創(chuàng)建擴(kuò)展,同時(shí)官方文檔中提供了簡(jiǎn)單明了的文檔說(shuō)明以及豐富的samples,samples包括Command、Color Theme、Tree View等等,本文僅做Extension Pack的示例。
環(huán)境準(zhǔn)備
環(huán)境依賴 nodejs 以及 Git,以MacOS為例,通過(guò)Homebrew安裝:
brew install node git
然后通過(guò) 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)
回車后會(huì)提問(wèn)是否要將當(dāng)前已安裝的擴(kuò)展安裝到新的Extension Pack中,選擇Yes會(huì)報(bào)錯(cuò)
? What type of extension do you want to create? New Extension Pack
? Add the currently installed extensions to the extension pack? Yes
Error codeCommand failed: code --list-extensions
/bin/sh: code: command not found
這是因?yàn)槲业腣S Code并不是通過(guò)命令行安裝的,如果要使用code命令就需要通過(guò)命令行安裝VS Code,然后重新執(zhí)行yo code。
MacOS上通過(guò)Homebrew安裝vs code:
brew cask install visual-studio-code
當(dāng)然也可以選擇不自動(dòng)安裝已有擴(kuò)展,同樣可以順利進(jìn)行后面的配置。
? 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.
通過(guò)Yeoman工具,我們配置了name、identifier、description,并且工具自動(dòng)生成了一個(gè)本地git倉(cāng)庫(kù),工程目錄結(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的詳情頁(yè)中有該文件的鏈接。
- README.md 在Visutal Studio Code Marketplace的擴(kuò)展詳情,作用類似GitHub Page。
- package.json 擴(kuò)展的 manifest文件,定義了擴(kuò)展的相關(guān)屬性。
- vsc-extension-quickstart.md 針對(duì)生成的工程中文件的簡(jiǎn)易說(shuō)明文檔。
package.json
作為Extension Pack類型的VS Code 擴(kuò)展來(lái)說(shuō),只需要維護(hù)package.json就行,package.json中的各項(xiàng)字段可以參考VS Code的官方文檔Extension Manifest。
也可以參考我的vscode-java-dev-tools-pack/package.json,這是一個(gè)比較完整的Demo。
package & publish
微軟關(guān)于插件打包發(fā)布可以參考文檔Publishing Extensions。
微軟提供了vsce這款命令行工具方便開(kāi)發(fā)者進(jìn)行打包和發(fā)布:
npm install -g vsce
安裝完成后,cd到工程目錄下,進(jìn)行打包生成.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)
注意版本號(hào),是根據(jù)package.json文件中的version來(lái)生成的,version必須是major.minor.stage的格式
package成功后,需要去vs code創(chuàng)建一個(gè)publisher,推薦通過(guò)瀏覽器訪問(wèn)management page創(chuàng)建,比較直觀。
也可以通過(guò)vsce命令行創(chuàng)建,詳見(jiàn)Create a publisher
有了publisher后就能進(jìn)行publish了,還是在management page頁(yè)面,通過(guò)上傳.vsix文件的方式即可,當(dāng)vs code校驗(yàn)通過(guò)后就會(huì)發(fā)布到Visual Studio Code Marketplace。
publish同樣可以通過(guò)vsce命令行進(jìn)行,詳見(jiàn)Log in to a publisher
總結(jié)
插件安裝完成后還是需要逐一去配置調(diào)試的,這個(gè)沒(méi)法自動(dòng)化,畢竟各人喜好不同,不過(guò)大多數(shù)插件都是開(kāi)箱即用的。
作為開(kāi)源的輕量級(jí)通用編輯器,VS Code的Java開(kāi)發(fā)體驗(yàn)確實(shí)不如JetBrains,但和Eclipse一樣勝在開(kāi)源免費(fèi),所以還是可堪一用的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 快速解決VS Code報(bào)錯(cuò):Java 11 or more recent is required to run. Please download and install a recent JDK
- VSCode+Gradle搭建Java開(kāi)發(fā)環(huán)境實(shí)現(xiàn)
- VsCode搭建Java開(kāi)發(fā)環(huán)境的方法
- VScode+Java配置與使用的詳細(xì)步驟
- IDEA配置java開(kāi)發(fā)環(huán)境(maven、gradle、tomcat)
- JDBC-idea導(dǎo)入mysql連接java的jar包(mac)的方法
- 2020新版idea創(chuàng)建項(xiàng)目沒(méi)有javaEE 沒(méi)有Web選項(xiàng)的完美解決方法
相關(guān)文章
實(shí)例講解Java編程中數(shù)組反射的使用方法
這篇文章主要介紹了Java編程中數(shù)組反射的使用方法,通過(guò)編寫(xiě)數(shù)組反射工具類可以重用許多基礎(chǔ)代碼,減少對(duì)類型的判斷過(guò)程,需要的朋友可以參考下2016-04-04
idea啟動(dòng)tomcat控制臺(tái)中文亂碼的三種情況解決
本文主要介紹了idea啟動(dòng)tomcat控制臺(tái)中文亂碼,主要包括三種情況,分別介紹了一下解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
Spring Security和自定義filter的沖突導(dǎo)致多執(zhí)行的解決方案
這篇文章主要介紹了Spring Security和自定義filter的沖突導(dǎo)致多執(zhí)行的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
如何使用JAVA實(shí)現(xiàn)數(shù)字水印
本文介紹了如何使用JAVA實(shí)現(xiàn)數(shù)字水印,主要用到了java.awt包中的AlphaComposite類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-07-07
代理模式之Java動(dòng)態(tài)代理實(shí)現(xiàn)方法
今天一個(gè)偶然的機(jī)會(huì)我突然想看看JDK的動(dòng)態(tài)代理,因?yàn)橐郧耙仓酪稽c(diǎn),而且只是簡(jiǎn)單的想測(cè)試一下使用,使用很快里就寫(xiě)好了這么幾個(gè)接口和類,需要的朋友可以參考下2012-11-11
Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之背包問(wèn)題
背包問(wèn)題是一個(gè)非常典型的考察動(dòng)態(tài)規(guī)劃應(yīng)用的題目,對(duì)其加上不同的限制和條件,可以衍生出諸多變種,若要全面理解動(dòng)態(tài)規(guī)劃,就必須對(duì)背包問(wèn)題了如指掌2022-02-02
java環(huán)境變量path和classpath的配置
這篇文章主要為大家詳細(xì)介紹了java系統(tǒng)環(huán)境變量path和classpath的配置過(guò)程,感興趣的小伙伴們可以參考一下2016-07-07

