Gradle Maven 依賴管理


倉庫管理簡介

本質上說,倉庫是一種存放依賴的容器,每一個項目都具備一個或多個倉庫。

Gradle支持以下倉庫格式:

我們來看一下,對於每一種倉庫類型,我們在構建中應該如何配置。

在構建中加入Ivy倉庫

我們可以通過URL地址或本地文件系統地址,將Ivy倉庫加入到我們的構建中。

如果想通過URL地址添加一個Ivy倉庫,我們可以將以下代碼片段加入到build.gradle文件中:

1
2
3
4
5
repositories {
     ivy {
         url "http://ivy.petrikainulainen.net/repo"
     }
}

如果想通過本地文件系統地址添加一個Ivy倉庫,我們可以將以下代碼片段加入到build.gradle文件中:

1
2
3
4
5
repositories {
     ivy {      
         url "../ivy-repo"
     }
}

小貼士:如果你想要獲得更多關於Ivy倉庫配置的信息,你可以參考以下資源:

我們繼續,下面是如何在構建中加入Maven倉庫。

在構建中加入Maven倉庫

與Ivy倉庫很類似,我們可以通過URL地址或本地文件系統地址,將Maven倉庫加入到我們的構建中。

如果想通過URL地址添加一個Maven倉庫,我們可以將以下代碼片段加入到build.gradle文件中:

1
2
3
4
5
repositories {
     maven {
         url "http://maven.petrikainulainen.net/repo"
     }
}

如果想通過本地文件系統地址添加一個Maven倉庫,我們可以將以下代碼片段加入到build.gradle文件中:

1
2
3
4
5
repositories {
     maven {      
         url "../maven-repo"
     }
}

在加入Maven倉庫時,Gradle提供了三種“別名”供我們使用,它們分別是:

  • mavenCentral()別名,表示依賴是從Central Maven 2 倉庫中獲取的。
  • jcenter()別名,表示依賴是從Bintary’s JCenter Maven 倉庫中獲取的。
  • mavenLocal()別名,表示依賴是從本地的Maven倉庫中獲取的。

如果我們想要將Central Maven 2 倉庫加入到構建中,我們必須在build.gradle文件中加入以下代碼片段:

1
2
3
repositories {
     mavenCentral()
}

小貼士:如果你想要獲取更多關於Maven倉庫配置的信息,你可以參考這篇文章:

section 50.6.4 Maven Repositories of the Gradle User Guide

我們繼續,下面是如何在構建中加入Flat Directory倉庫。

在構建中加入Flat Directory倉庫

如果我們想要使用Flat Directory倉庫,我們需要將以下代碼片段加入到build.gradle文件中:

1
2
3
4
5
repositories {
     flatDir {
         dirs 'lib'
     }
}

這意味着系統將在lib目錄下搜索依賴,同樣的,如果你願意的話可以加入多個目錄,代碼片段如下:

1
2
3
4
5
repositories {
     flatDir {
         dirs 'libA' , 'libB'
     }
}

小貼士:如果你想要獲得更多關於Flat Directory倉庫配置的信息,你可以參考以下資源:

我們繼續,下面要講的是,如何使用Gradle管理項目中的依賴。

依賴管理簡介

在配置完項目倉庫后,我們可以聲明其中的依賴,如果我們想要聲明一個新的依賴,可以采用如下步驟:

  1. 指定依賴的配置。
  2. 聲明所需的依賴。

讓我們看一下詳細步驟:

配置中的依賴分類

在Gradle中,依賴是按照指定名稱進行分類的,這些分類被稱為配置項,我們可以使用配置項聲明項目的外部依賴。

Java插件指定了若干依賴配置項,其描述如下:

  • 當項目的源代碼被編譯時,compile配置項中的依賴是必須的。
  • runtime配置項中包含的依賴在運行時是必須的。
  • testCompile配置項中包含的依賴在編譯項目的測試代碼時是必須的。
  • testRuntime配置項中包含的依賴在運行測試代碼時是必須的。
  • archives配置項中包含項目生成的文件(如Jar文件)。
  • default配置項中包含運行時必須的依賴。

我們繼續,下面是如何在項目中聲明依賴。

聲明項目依賴

最普遍的依賴稱為外部依賴,這些依賴存放在外部倉庫中。一個外部依賴可以由以下屬性指定:

  • group屬性指定依賴的分組(在Maven中,就是groupId)。
  • name屬性指定依賴的名稱(在Maven中,就是artifactId)。
  • version屬性指定外部依賴的版本(在Maven中,就是version)。

小貼士:這些屬性在Maven倉庫中是必須的,如果你使用其他倉庫,一些屬性可能是可選的。打個比方,如果你使用Flat directory倉庫,你可能只需要指定名稱和版本

我們假設我們需要指定以下依賴:

  • 依賴的分組是foo
  • 依賴的名稱是foo
  • 依賴的版本是0.1
  • 在項目編譯時需要這些依賴。

我們可以將以下代碼片段加入到build.gradle中,進行依賴聲明:

1
2
3
dependencies {
     compile group: 'foo' , name: 'foo' , version: '0.1'
}

我們也可以采用一種快捷方式聲明依賴:[group]:[name]:[version]。如果我們想用這種方式,我們可以將以下代碼段加入到build.gradle中:

1
2
3
dependencies {
     compile 'foo:foo:0.1'
}

我們也可以在同一個配置項中加入多個依賴,傳統的方式如下:

1
2
3
4
5
6
dependencies {
     compile (
         [group: 'foo' , name: 'foo' , version: '0.1' ],
         [group: 'bar' , name: 'bar' , version: '0.1' ]
     )
}

如果采用快捷方式,那可以是這樣:

1
2
3
dependencies {
     compile 'foo:foo:0.1' , 'bar:bar:0.1'
}

自然地,聲明屬於不同配置項的依賴也是可以的。比如說,如果我們想要聲明屬於compiletestCompile配置項的依賴,可以這么做:

1
2
3
4
dependencies {
     compile group: 'foo' , name: 'foo' , version: '0.1'
     testCompile group: 'test' , name: 'test' , version: '0.1'
}

同樣的,給力的快捷方式又來了( ̄︶ ̄)

1
2
3
4
dependencies {
     compile 'foo:foo:0.1'
     testCompile 'test:test:0.1'
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM