VSCode+Gradle搭建Java開發(fā)環(huán)境實(shí)現(xiàn)
前言
其實(shí)目前已經(jīng)有許多優(yōu)秀的IDE都是支持JAVA開發(fā)的,比如Eclipse、NetBeans、IntelliJ IDEA、Android Studio等,如果是項(xiàng)目級的開發(fā),并且對這些IDE也已經(jīng)十分滿意的話,可以不用再來折騰VSCode(Visual Studio Code)。我本人主要是基于以下原因選擇折騰一番:
- 確實(shí)是喜歡VSCode這款工具,開源免費(fèi),UI美觀,性能強(qiáng)悍。
- 插件豐富,并且通過對各種插件的安裝,也能對程序運(yùn)行過程和原理有進(jìn)一步了解,達(dá)到 “知其所以然” 的目的。
- 目前主要借助VSCode做一些Demo測試,來研究JAVA語言的特性,也會(huì)同時(shí)測試其他語言,比如JavaScript、Python等,使用VSCode的話,只需要安裝幾個(gè)插件就可以在這幾種語言間無縫切換,非常方便。
- 由于本人目前主攻方向還是Android,官方開發(fā)工具是Android Studio,也是基于Gradle構(gòu)建的,所以想對Gradle有進(jìn)一步了解。當(dāng)然使用VSCode創(chuàng)建Maven工程也是完全沒問題的。
安裝環(huán)境
- Thinkpad 筆記本
- Win10 x64 操作系統(tǒng)
- Visual Studio Code 1.30.1
- Gradle 5.1
步驟
安裝VSCode
VSCode官方下載,然后安裝就可以了,這里不再贅述。
安裝針對VSCode的JAVA插件
打開Visual Studio Code,點(diǎn)擊左邊的Extensions圖標(biāo)(或者快捷鍵Ctrl+Shift+X),搜索"java extension pack",點(diǎn)擊右邊的Install進(jìn)行安裝,我這里因?yàn)橐呀?jīng)裝過了,所以顯示的Disable。安裝完成后,點(diǎn)擊Reload重新加載。Java Extension Pack也是官方推薦的插件包,因?yàn)樗硕鄠€(gè)其它插件,不需要我們一個(gè)個(gè)的安裝,具體可參考Java in Visual Studio Code。
其實(shí)此時(shí)已經(jīng)可以高效編寫運(yùn)行Java代碼了,如下我寫的HelloWorld,使用javac
編譯,使用java
運(yùn)行,完全沒有問題:
但是如果Java源碼定義了package
的話,使用java
命令運(yùn)行時(shí)需要指定包名+類名,并且在包的父文件夾中執(zhí)行該命令,否則會(huì)報(bào):“錯(cuò)誤: 找不到或無法加載主類”,
解決方案:
但是今天的主角是Gradle來構(gòu)建和運(yùn)行Java工程,所以繼續(xù)往下看。
安裝Gradle
Gradle官方下載,下載完成后解壓到自定義目錄,比如我放到D:\Gradle下。
配置環(huán)境變量:依次選擇"此電腦"->屬性->高級系統(tǒng)設(shè)置->環(huán)境變量,編輯"系統(tǒng)變量"框下的PATH(不區(qū)分大小寫),將bin路徑加入PATH中:
檢查是否安裝成功,啟動(dòng)cmd,輸入gradle -v查看版本號,如果顯示正確的坂本號,表示安裝成功。這里注意:如果下載的gradle是5.1及更高版本版本,要求JDK或JRE必須是JAVA 7及以上,具體可參考
創(chuàng)建Gradle工程
創(chuàng)建java工程
創(chuàng)建一個(gè)空目錄,然后在該目錄下啟動(dòng)cmd,執(zhí)行gradle init --type java-application
初始化gradle工程,然后將整個(gè)文件夾引入VSCode。我這里是直接在VSCode中的TERMINAL中執(zhí)行的,方便一些。它會(huì)讓我們填寫一些基本信息,比如項(xiàng)目名稱和包名稱等,注意包名稱要小寫,這是Java的基本規(guī)范,其他的保持默認(rèn)就可以。同時(shí)也可以看到,他會(huì)默認(rèn)創(chuàng)建一個(gè)App.java。
構(gòu)建工程
在項(xiàng)目路徑下執(zhí)行gradle build
進(jìn)行構(gòu)建。但是報(bào)錯(cuò)"Could not resolve com.google.guava:guava:26.0-jre"和400 Bad Request,從錯(cuò)誤信息可以看出,當(dāng)前項(xiàng)目依賴guava,但是guava無法從jcenter下載。
解決方案:
首先要確認(rèn)該資源在jcenter中是否存在:復(fù)制鏈接到瀏覽器中發(fā)現(xiàn)可以正常下載,資源沒問題:
那么就確認(rèn)了不是jcenter的原因,可能gradle代理的原因,打開gradle.properties屬性文件,一般在當(dāng)前用戶目錄的.gradle下,
將和代理相關(guān)的四項(xiàng)全部刪除,或者注釋掉。一般應(yīng)該是沒有代理的,我這里之所以會(huì)有,是因?yàn)橹笆褂肁ndroid Studio 的時(shí)候配置過Gradle,當(dāng)時(shí)把Android SDK的代理不小心配置給了Gradle(Gradle不需要代理),所以會(huì)有此問題。同時(shí)也可以看出,不同版本的Gradle之間,gradle.properties是共享的。
修改完之后,再次輸入gradle build
,可以正常編譯,guava也可以下載了:
一段時(shí)間后,提示構(gòu)建成功:
運(yùn)行java工程
在當(dāng)前工程下執(zhí)行gradle run
來運(yùn)行java工程,輸出"Hello wrold.":
問題拓展
如果這里依賴包不是guava,而且在瀏覽器中輸入地址后,發(fā)現(xiàn)資源不存在怎么辦?
也沒關(guān)系,可以在build.gradle中多配置幾個(gè)資源倉,比如加個(gè)MavenCentral(),或者干脆使用最后兩行阿里的資源倉也是不錯(cuò)的選擇:
repositories { // Use jcenter for resolving your dependencies. // You can declare any Maven/Ivy/file repository here. jcenter() mavenCentral() // maven { url 'http://maven.aliyun.com/nexus/content/groups/public'} // maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'} }
總結(jié)
在搭建環(huán)境的過程中還是遇到許多小問題的,這里要特別感謝這篇博客的作者:Gradle代理問題,幫我解決了代理問題。
到此這篇關(guān)于VSCode+Gradle搭建Java開發(fā)環(huán)境實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)VSCode+Gradle搭建Java內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot ThreadLocal 簡單介紹及使用詳解
ThreadLocal 叫做線程變量,意思是 ThreadLocal 中填充的變量屬于當(dāng)前線程,該變量對其他線程而言是隔離的,也就是說該變量是當(dāng)前線程獨(dú)有的變量,這篇文章主要介紹了SpringBoot ThreadLocal 的詳解,需要的朋友可以參考下2024-01-01redis發(fā)布訂閱Java代碼實(shí)現(xiàn)過程解析
這篇文章主要介紹了redis發(fā)布訂閱Java代碼實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09基于params、@PathVariabl和@RequestParam的用法與區(qū)別說明
這篇文章主要介紹了方法參數(shù)相關(guān)屬性params、@PathVariabl和@RequestParam用法與區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08SpringBoot如何使用@Value取配置文件中的map配置
這篇文章主要介紹了SpringBoot如何使用@Value取配置文件中的map配置方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之哈希算法實(shí)現(xiàn)
哈希表本質(zhì)是一種(key,value)結(jié)構(gòu),由此我們可以聯(lián)想到,能不能把哈希表的key映射成數(shù)組的索引index呢?如果這樣做的話那么查詢相當(dāng)于直接查詢索引,查詢時(shí)間復(fù)雜度為O(1),其實(shí)這也正是當(dāng)key為int型時(shí)的做法,將key通過某種做法映射成index,從而轉(zhuǎn)換成數(shù)組結(jié)構(gòu)2022-02-02IntelliJ IDEA搜索整個(gè)項(xiàng)目進(jìn)行全局替換(有危險(xiǎn)慎用)
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA搜索整個(gè)項(xiàng)目進(jìn)行全局替換(有危險(xiǎn)慎用),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10SpringMVC接收與響應(yīng)json數(shù)據(jù)的幾種方式
這篇文章主要給大家介紹了關(guān)于SpringMVC接收與響應(yīng)json數(shù)據(jù)的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用springmvc具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03使用spring框架ResponseEntity實(shí)現(xiàn)文件下載
這篇文章主要介紹了使用spring框架ResponseEntity實(shí)現(xiàn)文件下載,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02