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