從零開始,跟我一塊兒作jblog項目(三)從Maven到Gradle

從零開始,跟我一塊兒作jblog項目(一)引言html

從零開始,跟我一塊兒作jblog項目(二)Mavenjava

從零開始,跟我一塊兒作jblog項目(三)從Maven到Gradleweb

 

上一節講到項目構建工具Maven,對JAR包的管理不可謂不強大spring

博主在使用maven引入Spring框架時,瞭解到Spring推薦使用gradle工具來構建項目編程

百度了一下,發現Gradle也是一套很優秀的項目構建工具api

Gradle使用Groovy語言配置項目和依賴,在極大地提高靈活性和配置性以外,甚至配置代碼要比XML結構的POM文件少不少數組

鑑於我但願將jblog打形成一款modern的小型我的博客系統tomcat

而gradle的首頁上介紹本身爲Modern Open-Source Enterprise Build Automationapp

因此我決定將項目原型從maven構建轉移爲gradle構建框架

目前關於Gradle的教程還比較零散,下面我會一步一步演示如何將Gradle集成到myeclipse中去

 

首先,到Gradle官網下載最新版的gradle

下載地址是http://gradle.org/gradle-download/

博主下載的是2.8版本,寫這篇文章的時候已經更新到2.9了

下載下來解壓到任意目錄

而後配置Windows環境變量,一共要配置三個,分別以下:

GRADLE_HOME:你的gradle解壓路徑,例如:D:\Workspaces\gradle-2.8

GRADLE_USER_HOME:你但願做爲本地倉庫的路徑,本身建一個名爲.gradle的路徑,例如:D:\Workspaces\.gradle

path:這個不用說,系統路徑,能夠在cmd中直接敲gradle命令的,在path最後添加:%GRADLE_HOME%\bin;

這三個配置好了,咱們初步驗證一下,打開cmd,任意路徑下敲入gradle -v命令,出現下面的響應就算安裝成功了

 

關於gradle的詳細命令和用法,你們能夠參考下面的教程

http://wiki.jikexueyuan.com/project/gradle/

建議快速閱讀上面的教程後,咱們來將gradle植入eclipse/myeclipse中

打開eclipse,進入marketplaces,搜索gradle,找到Gradle IDE Pack,通過博主測試這個插件是最好用的

安裝好Gradle IDE Pack插件後,重啓eclipse,新建一個最簡單的JAVA Project,或者試試Web Projec也能夠

在項目根目錄下新建一個build.gradle文件,如圖所示

編輯build.gradle配置文件,示例以下:

apply plugin: "java"
apply plugin: "eclipse"

sourceCompatibility = 1.8
version = '1.0'

configurations {
    provided
}

sourceSets {
    main.compileClasspath += configurations.provided
    test.compileClasspath += configurations.provided
    test.runtimeClasspath += configurations.provided
}

repositories {
    mavenLocal()
    maven {url "http://maven.oschina.net/content/groups/public/"}    
    mavenCentral()
}

dependencies {
    compile "org.hibernate:hibernate-core:5.+"
    testCompile "junit:junit:4.7"
    provided "javax.servlet:javax.servlet-api:4.+"
}

//注意下面這個配置,新版本gradle若是不使用數組添加的話會致使eclipse頻繁報錯
eclipse.classpath.plusConfigurations += [configurations.provided]

保存build.gradle文件後,右鍵project,選擇configure,選擇convert to gradle project,爲項目添加gradle特性

添加完gradle特性後,咱們來讓eclipse將build.gradle中定義的幾個依賴包加入到項目中來

在這以前還須要配置一下Gradle IDE Pack插件,eclipse的window->preferencecs->Gradle,配置咱們本地的gradle路徑

配置好了之後就萬事具有了,咱們來試驗一下,如何將build.gradle文件中定義的依賴引入eclipse環境中

右擊project項目,選擇gradle,選擇Enable Dependency Management,讓插件來打開依賴管理

打開以後,仍然右鍵項目,gradle->Refresh Dependencies,刷新一下依賴列表

在後臺,gradle將按照上述文件的定義,依次檢索咱們系統中的maven本地倉庫,chinaos提供的中國鏡像倉庫,以及maven中央倉庫

將所須要的包下載到配置的gradle本地倉庫中,再引入到eclipse的classpath中,效果以下圖所示:

至此,關於gradle集成到eclipse的全部工做就結束了,項目編寫過程當中,若是要繼續引入JAR包,就在build.gradle文件中添加

而後刷新一下gradle的依賴,就能實時添加到eclipse的環境中去了

 

最後着重講解一下provided的scope(有效依賴範圍),上一篇講到maven,其中配置依賴的scope經常使用的有下面幾種

compile:編譯,測試,打包時都須要依賴,好比spring、hibernate、struts等

test:測試時須要依賴,常見的有junit

provided:通常由容器提供,只有寫代碼時須要依賴,好比servlet

runtime:打包運行時須要依賴

轉移到gradle之後,gradle默認只爲咱們提供了四種scope,以下:

compile:編譯範圍依賴在全部的 classpath 中可用,同時它們也會被打包

runtime:依賴在運行和測試系統的時候須要,但在編譯的時候不須要。好比,你可能在編譯的時候只須要 JDBC API JAR,而只有在運行的時候才須要 JDBC 驅動實現

testCompile:測試期編譯須要的附加依賴

testRuntime:測試運行期須要

能夠看到gradle默認並未提供相似provided的scope,那好比咱們須要寫web project,則須要引入servlet包,而這時就比較麻煩

咱們能夠向eclipse的build path手工添加tomcat下的servlet包,但那樣未免顯得太low了,畢竟咱們已經選擇使用項目構建工具來管理咱們的JAR包了

彆着急,gradle畢竟是使用一種編程語言來配置項目構建的,因此它的靈活性至關高,在上述的配置文件中,咱們人爲定義了一個provided的scope

而且將這個provided使用sourceSet集合定義了範圍,明確了在main目錄的compile期間須要依賴,在test目錄的編譯期間和運行期間須要依賴

言下之意就是在main目錄的運行期間不須要依賴嘍,也就是運行時不須要將此provided範圍的依賴打包

最後配合eclipse插件,向eclipse的classpath中添加了這一provided範圍,結果eclipse會將servlet引入到項目依賴中。

相關文章
相關標籤/搜索