亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Gradle 快速入門

2019-11-11 06:39:45
字體:
來源:轉載
供稿:網友

大家應該都經歷過為了學習Hibernate、SPRing這樣的框架,需要引用大量Jar包而忙得焦頭爛額的經歷吧。在java中管理Jar包確實是一件麻煩事情。而且有時候就算你電腦上一個項目配置的好好的,換一臺電腦馬上就不行了。因此就產生了項目構建工具這么一個玩意,它能大大簡化我們構建項目所需的成本。Maven就是這么一個項目構建工具,它的配置文件是一個xml文件。這樣做的優點就是配置易于理解,因為是XML嘛。但是如果項目很大很復雜,那么Maven的局限性就體現出來了:XML會變得非常非常長,不利于閱讀;使用插件、執行某些任務非常困難,因為XML擅長描述靜態信息,對動態的行為無能為力。因此催生了一個嶄新的項目構建工具Gradle。用了一段時間Gradle的我表示再也回不去Maven了。真的各方面體驗都非常好。Gradle的唯一缺點大概就是網絡不甚流暢,可能需要梯子等工具。

安裝Gradle

我們可以到Gradle官方網站上下載Gradle。Gradle的文檔也在上面,雖然是英文的,但是我推薦大家還是有時間盡量看一看。對提高Gradle技能很有幫助。下載版本有兩個,完整版(包括可執行文件、文檔和源代碼)以及二進制版(只有可執行文件)。我推薦下載完整版的,因為有源代碼的支持,在Intellij IDEA這樣的智能IDE會提供Gradle腳本補全這樣的高級功能。下載完成之后將Gradle bin目錄添加到環境變量中。新開一個命令提示符執行如下命令,

gradle --version

如果得到類似的輸出,那么就說明安裝成功了。

------------------------------------------------------------Gradle 3.3------------------------------------------------------------Build time: 2017-01-03 15:31:04 UTCRevision: 075893a3d0798c0c1f322899b41ceca82e4e134bGroovy: 2.4.7Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015JVM: 1.8.0_112 (Oracle Corporation 25.112-b15)OS: Windows 10 10.0 amd64

Gradle默認情況下會使用當前系統的編碼來處理文件。也就是說在我們中文Windows操作系統下,會使用GBK編碼。如果我們的項目使用UTF-8編碼,在使用Gradle的過程中就會出現亂碼情況。解決辦法可以參考我這篇文章Gradle項目中文亂碼的解決辦法。

基本使用

新建項目

隨便新建一個文件夾,打開命令提示符,切進這個文件夾。然后執行

gradle init

這樣Gradle就會為我們初始化必要的文件。文件列表如圖。.gradle是Gradle的臨時文件夾,不用管。gradle文件夾、gradlewgradlew.bat是Gradle Wrapper用到的文件,我們現在也不用管。需要關注的就是build.gradlesettings.gradle兩個文件。

Gradle新建項目結構

對于一個完整的Gradle項目來說結構應該和下圖一樣。除了上圖初始化之后的幾個文件之外,還應該有以下文件夾。

src/main/java,java源代碼文件夾src/main/resources,資源文件夾src/main/webapp,網絡內容文件夾(如果這是個web項目)src/test/java,測試文件夾src/test/resources,測試資源文件夾

Gradle完整項目結構

配置文件

settings.gradle文件是Gradle項目的配置文件,我們可以在這里配置項目的一些信息,例如項目名稱等等。以下是一個簡單的settings.gradle內容。

rootProject.name = 'spring-web-mvc-sample'

如果是一個多項目的Gradle項目,那么settings.gradle還會包含一些include行,指定包含了哪些項目。

include 'shared'include 'api'include 'services:webservice'

構建文件

下面來說說構建文件build.gradle,這是我們主要配置的地方。下面是一個典型的build.gradle文件。每個部分的作用我都注釋出來了。習慣了XML文件的同學一定覺得這種文件很特別。Gradle是基于Groovy語言的,所以這里的文件其實就是Groovy形式的代碼文件。如果不會Groovy語言也不要緊,使用Gradle插件就可以滿足我們大部分的需求。當然如果懂Groovy語言,那么就可以編寫復雜的自定義任務了。

// 項目配置group 'yitian.learn'version '1.0-SNAPSHOT'// 插件配置apply plugin: 'java'apply plugin: 'war'apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScr下面來根據注釋分別說說。首先是項目配置,配置該項目的組名(一般是公司或組織名)和版本號,和Maven中的組名、項目名和版本號一一對應(Gradle項目的項目名在settings.gradle中)。源代碼兼容性指的是項目中源代碼的版本。對于我來說肯定永遠是最新版的Java了。剩下幾個有點復雜,在后面慢慢討論。

配置項目

執行任務

首先我們執行一下命令gradle tasks。會發現列出了Gradle當前所有可用的任務,而且我們會發現有個任務就是tasks在Gradle中,任務是最基本的執行單元。而且我們這些Gradle命令行其實就是執行一些Gradle命令。每個任務還應該有一個組名,表明任務的類別,沒有組名的任務Gradle默認會將其隱藏。我們使用gradle tasks列出任務的時候Gradle也會將其以組名分類。要執行某個任務,語法如下:gradle 任務名。

如果有使用過Maven的同學,可以感受到Gradle執行任務比Maven執行命令方便多了。如果項目還是剛剛那個剛新建好什么都沒改的構建文件。那么查看任務的時候應該只能看到初始化和幫助任務。Gradle其他的功能需要插件來提供。

插件

上面那個配置文件給出了插件的配置方法。第一種是使用Gradle提供的一些插件,第二種是引用網絡上的插件。配置了插件之后,我們再次查看任務,就會發現多出來很多任務,這就是插件帶給我們的功能。

如果我們這是個Java項目,那就添加java插件,如果這是一個Java Web項目,那么還需要添加war插件。如果想要運行該web項目,可以使用Gradle提供的jetty插件。但是這個插件在Gradle3.3中已經過時了,Gradle推薦我們使用功能更加強大的Gretty插件。針對其他語言和平臺,Gradle也提供了相應的插件例如android,這些插件的情況參見其相應的文檔。

apply plugin: 'java'apply plugin: 'war'apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'

java和war插件給我們提供了很多新的任務,方便我們開發。列舉一些常用的如下:

任務名 作用
build 打包和測試項目
test 測試項目
assemble 打包項目
war 打包成war文件
jar 打包成jar文件
clean 清理項目
javadoc 生成javadoc

Gretty插件最常用的就是tomcatRun任務了。它會啟動一個tomcat實例來運行我們的應用,而且具有自動更新類、資源,必要時重啟服務器的功能,非常方便和強大。Gretty插件的詳細配置參見其Github。

倉庫配置

Gradle默認提供了兩個公共倉庫,mavenCentral和jcenter。我們可以隨意使用。當然也可以同時引用多個。這種情況下Gradle會依次按照順序來搜索軟件包,如果都沒找到則構建失敗。當然我們也可以使用其他鏡像倉庫。下面的例子使用了阿里的鏡像倉庫,如果鏡像倉庫沒找到需要的軟件就會繼續在jcenter中尋找。

repositories { maven { url "http://maven.aliyun.com/nexus/content/groups/public/" } jcenter()}

依賴配置

Gradle的依賴配置和Maven兼容。所以Gradle的依賴項也由三個部分,組名,項目名和版本組成。所以一個依賴項可以寫成這樣。

compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'

依賴項還可以按照group:name:version形式簡寫,所以上面的依賴項可以縮成這樣。

compile 'org.hibernate:hibernate-core:3.6.7.Final'

和Maven一樣,Gradle依賴項也支持作用域,這在依賴項前面的動詞上體現出來。常見的幾個作用域如下。

名稱 作用
compile 在項目編譯時需要
runtime 在運行時需要,默認情況下也包括編譯時依賴
testCompile 在測試代碼編譯時需要
testRuntime 在測試代碼運行時需要,默認情況下也包括編譯時依賴、運行時依賴和測試編譯時依賴

查找依賴項的時候推薦到mvnrepository.com上查找,這個網站同時提供了Maven和Gradle等多種形式的依賴項,非常方便。

定義變量

有時候可能需要在某處定義一個變量,然后在其余多處地方使用這個變量。在Gradle中需要在ext塊中定義變量,然后就可以在其他地方使用了。

// 額外的變量配置ext { springVersion = '4.3.6.RELEASE'}//依賴配置dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile group: 'org.springframework', name: 'spring-webmvc', version: springVersion}

進階使用

Gradle Wrapper

現在可以說一說gradle/wrapper文件夾、gradlewgradlew.bat了。這幾個文件是Gradle Wrapper的文件。Gradle Wrapper能夠讓沒有安裝Gradle的電腦運行Gradle項目。原理很簡單,通過一個腳本文件實現,如果當前沒有安裝某個版本的Gradle,腳本會自動下載解壓。完成之后,當我們通過gradlew命令運行Gradle的時候,腳本會將命令參數傳遞給實際的gradle命令。Gradle Wrapper的使用方法和Gradle一樣,只不過把gradle換成了gradlew

gradle/wrapper文件夾對Gradle Wrapper來說很重要,該文件夾下的兩個文件gradle-wrapper.jargradle-wrapper.properties缺一不可,假如要上傳到源代碼管理這兩個文件也同樣需要上傳。在gradle-wrapper.properties中我們可以配置Gradle Wrapper的一些屬性。重點是最后一行,為了使用最新和最完整的Gradle功能,我們一般要修改它為gradle-3.3-all.zip(3.3是當前最新的Gradle版本號)。

distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https/://services.gradle.org/distributions/gradle-3.3-all.zip

IDE集成

如果使用Eclipse或者STS這樣基于Eclipse的IDE,點擊幫助->軟件市場,搜索BuildShip插件,安裝然后重啟Eclipse,然后就可以在新建項目的時候看到Gradle了。

如果使用Intellij IDEA,由于它自帶了Gradle支持。所以直接可以在新建項目的時候選擇Gradle項目,然后根據提示操作。對于Gradle項目來說推薦的IDE還是Intellij IDEA,因為對Gradle的支持最好。

IDEA Gradle插件


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
伊人久久五月天| 亚洲第一区在线| 精品视频—区二区三区免费| 欧美日韩中文字幕综合视频| 欧美日韩国产第一页| 亚洲欧美一区二区三区在线| 麻豆乱码国产一区二区三区| 成人网址在线观看| 日韩国产精品亚洲а∨天堂免| 欧美性jizz18性欧美| 成人免费视频网址| 日韩免费观看视频| 亚洲人成电影网站色www| 久久琪琪电影院| 亚洲性夜色噜噜噜7777| 欧美精品一区在线播放| 亚洲激情视频在线| 欧美做爰性生交视频| 亚洲精品电影在线观看| 日韩中文在线中文网三级| 欧美日韩ab片| 亚洲国产日韩精品在线| 久久视频在线看| 亚洲第一男人天堂| 日韩国产高清污视频在线观看| 日韩在线资源网| 日韩在线观看免费全| 精品欧美国产一区二区三区| 日韩国产欧美精品一区二区三区| 精品国产福利视频| 久久中文字幕视频| 久久综合久久88| 国内精品400部情侣激情| 精品露脸国产偷人在视频| 日韩激情av在线免费观看| 社区色欧美激情 | 国产欧美在线看| 国产精品精品国产| 亚洲精选一区二区| 伊人久久男人天堂| 亚洲国产一区自拍| 久久国产色av| 精品国产福利在线| 菠萝蜜影院一区二区免费| www.99久久热国产日韩欧美.com| 成人乱色短篇合集| 国产中文日韩欧美| 精品国产鲁一鲁一区二区张丽| 久久精品国产综合| 欧美日韩在线免费观看| 91久久在线播放| 91精品国产91久久久久久久久| 欧美日韩精品二区| 91亚洲国产成人久久精品网站| 欧美裸体男粗大视频在线观看| 欧美富婆性猛交| 91色在线视频| 欧美日韩成人免费| 欧美性少妇18aaaa视频| 国产91精品最新在线播放| 亚洲精品wwwww| 在线看欧美日韩| 国产亚洲人成网站在线观看| 日韩在线播放视频| 午夜精品久久久久久久99热浪潮| 久久影视电视剧凤归四时歌| 日韩一区在线视频| 成人精品一区二区三区电影黑人| 国产精品高潮呻吟久久av野狼| 欧美午夜电影在线| 欧美性黄网官网| 91精品视频大全| 国产精品色婷婷视频| 国内精品中文字幕| 亚洲精品永久免费精品| 成人网页在线免费观看| 亚洲精品www| 国产精品人成电影| 欧美高清性猛交| 国产精品美女www爽爽爽视频| 国产国产精品人在线视| 国产精品久久999| 欧美激情中文字幕乱码免费| 亚洲第一福利视频| 日韩中文字幕国产精品| 亚洲一区二区三区四区在线播放| 日韩av在线直播| xvideos成人免费中文版| 精品一区电影国产| 精品偷拍各种wc美女嘘嘘| 欧美亚洲激情在线| 韩国精品久久久999| 亚洲国产精品人人爽夜夜爽| 欧美性极品xxxx娇小| 国产精品黄色av| 日韩中文在线中文网在线观看| 一区二区三区四区精品| 国产精品av免费在线观看| 7777精品久久久久久| 国产精品电影久久久久电影网| 久久久久久久成人| 亚洲视频一区二区| 国产精品久久久久久中文字| 亚洲天堂日韩电影| 亚洲欧美日韩一区二区三区在线| 久久成人精品电影| 国产亚洲精品美女| 亚洲jizzjizz日本少妇| 2021久久精品国产99国产精品| www.欧美精品一二三区| 欧美亚洲国产日本| 欧美黑人狂野猛交老妇| 亚洲xxxxx性| 亚洲欧美日韩一区在线| 98精品国产自产在线观看| 久久在线观看视频| 国产亚洲精品美女久久久久| 国自在线精品视频| 欧美巨大黑人极品精男| 欧美精品在线免费观看| 欧美国产亚洲精品久久久8v| 久久久久久久久久久久久久久久久久av| 国产精品免费在线免费| 一个人www欧美| 97免费视频在线| 91成人国产在线观看| 欧美丰满少妇xxxxx| 国产主播喷水一区二区| 亚洲自拍欧美另类| 久久国产精品亚洲| 亚洲精品福利在线观看| 成人写真视频福利网| 欧美一级成年大片在线观看| 青青草国产精品一区二区| 欧美日韩国产精品一区| 91精品中文在线| 一区二区国产精品视频| 亚洲精品资源美女情侣酒店| 一区二区三区四区在线观看视频| 成人妇女淫片aaaa视频| 亚洲午夜小视频| 国产精品美女久久久免费| 欧美夫妻性生活xx| www高清在线视频日韩欧美| 成人网在线免费观看| 久久亚洲精品一区| 国产日韩欧美中文在线播放| 日韩欧美精品在线观看| 国产精品扒开腿做| 亚洲精品99久久久久| 亚洲综合中文字幕在线观看| 国产精品美女久久久久久免费| 美女999久久久精品视频| 欧美劲爆第一页| 日韩精品欧美国产精品忘忧草| 欧美成人h版在线观看| 久久久亚洲影院你懂的| 国内揄拍国内精品少妇国语| 国产69精品久久久久久| 国产欧美精品一区二区| 久久免费精品日本久久中文字幕| 欧美高清在线视频观看不卡| 日韩视频免费中文字幕| 日韩电视剧在线观看免费网站|