麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

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懂色| 免费午夜视频在线观看 | 成年人视频在线免费播放 | 99欧美视频| 羞羞的视频免费在线观看 | 欧美综合日韩 | 日本一区二区视频在线观看 | 中文字幕亚洲情99在线 | asian裸体佳人pics | 国产免费一级大片 | 国产a级片电影 | 成人毛片网站 | 思思久而久而蕉人 | 青草av.久久免费一区 | 久久久久久久久日本理论电影 | 精品国产中文字幕 | 国产免费一区二区三区网站免费 | 成人福利视频在线 | 91成人在线免费视频 | 亚洲午夜久久久久 | 久久久久久久久久美女 | 欧美成人免费一级 | 成人免费观看在线视频 | 久久免费视频在线 | 国产亚洲精品综合一区91 | 久久成人午夜视频 | 久久免费视频5 | 久久亚洲精选 | 欧美一级片免费在线观看 | 极品一级片 | 人成免费网站 | 欧美成人精品一区二区三区 | 91精品久久久久久久久 | 中文字幕爱爱视频 | 亚洲精品一区二区三区在线看 | 国产乱色精品成人免费视频 | 91成人久久 | 成人毛片视频在线观看 | 成人一区视频 |