Maven 依賴

2018-04-20 11:22 更新

Maven教程 - Maven依賴


當(dāng)編寫Java代碼時(shí),我們總是需要一些庫,例如,做單元測試我們需要JUnit庫,做String操作我們需要Apache Common Util庫。

對(duì)于更大的項(xiàng)目,我們可能需要?jiǎng)?chuàng)建自己的庫并在不同的部分使用它的項(xiàng)目。

庫Java文件打包在JAR文件中,需要這些JAR文件在編譯項(xiàng)目代碼時(shí)在類路徑上。

不同的項(xiàng)目需要不同版本的庫。 保持項(xiàng)目最新的庫JAR文件的正確版本不是一個(gè)容易的任務(wù)。

每個(gè)外部JAR可能還依賴于其他外部JAR文件等。以遞歸方式下載所有這些外部依賴JAR文件并確保下載正確的版本是一項(xiàng)巨大的任務(wù)。

當(dāng)項(xiàng)目越來越大,我們將需要越來越多的外部依賴。



Maven依賴管理

當(dāng)項(xiàng)目越來越大,我們將需要越來越多的外部依賴。...

Maven將下載它們并將它們放在您的本地Maven存儲(chǔ)庫中。

Maven將下載它們并將它們放在您的本地Maven存儲(chǔ)庫中。...

我們可以在POM文件中的dependencies元素內(nèi)指定依賴關(guān)系。

這里是一個(gè)例子:

<project ...>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.java2s.crawler</groupId>
    <artifactId>java-web-crawler</artifactId>
    <version>1.0.0</version>
    <dependencies>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.7.3</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>


注意

在上面的代碼中有兩個(gè)依賴元素。每個(gè)依賴項(xiàng)元素描述一個(gè)外部依賴項(xiàng)。

每個(gè)依賴關(guān)系由其groupId,artifactId和版本描述。

我們使用groupId,artifactId和version來識(shí)別自己的項(xiàng)目在頂部pom文件。 我們還使用這三個(gè)字段來標(biāo)識(shí)庫。

我們使用groupId,artifactId和version來識(shí)別自己的項(xiàng)目在頂部pom文件。 我們還使用這三個(gè)字段來標(biāo)識(shí)庫。...

當(dāng)執(zhí)行此POM文件時(shí),這兩個(gè)依賴項(xiàng)將從中央Maven存儲(chǔ)庫下載并放入本地Maven存儲(chǔ)庫(如果缺少依賴項(xiàng))您的本地Maven存儲(chǔ)庫。

如果已經(jīng)在本地存儲(chǔ)庫中找到依賴項(xiàng),Maven將不會(huì)下載它們。

如果給定的依賴在中央Maven存儲(chǔ)庫中不可用。您可以自己下載依賴關(guān)系并將其放入本地Maven存儲(chǔ)庫。

記住將其放入與groupId,artifactId和版本匹配的子目錄結(jié)構(gòu)中。 用/代替所有點(diǎn)(。),并用 / 分隔groupId,artifactId和版本。

以上示例下載的兩個(gè)依賴項(xiàng)將放入以下子目錄中:

MAVEN_REPOSITORY_ROOT/junit/junit/4.8.1
MAVEN_REPOSITORY_ROOT/org/jsoup/jsoup/1.7.3

外部依賴

Maven外部依賴關(guān)系是不在本地或遠(yuǎn)程的依賴JAR文件Maven倉庫。

外部依賴項(xiàng)可能位于您自己的本地硬盤上。

外部依賴項(xiàng)可能位于您自己的本地硬盤上。...

我們可以這樣配置一個(gè)外部依賴:

<dependency>
  <groupId>mydependency</groupId>
  <artifactId>mydependency</artifactId>
  <scope>system</scope>
  <version>1.0</version>
  <systemPath>${basedir}\war\WEB-INF\lib\mydependency.jar</systemPath>
</dependency>    

我們可以這樣配置一個(gè)外部依賴:...

scope 元素值設(shè)置為system。 systemPath 元素指向JAR文件的位置。

scope 元素值設(shè)置為system。 systemPath 元素指向JAR文件的位置。...

快照依賴關(guān)系

快照依賴關(guān)系是開發(fā)中的依賴JAR文件。

不是不斷地更新版本號(hào)以獲得最新版本,您可以將依賴項(xiàng)JAR文件標(biāo)記為快照,以便Maven始終下載它。

即使匹配的快照版本已下載到本地存儲(chǔ)庫中,快照版本也始終會(huì)下載到本地存儲(chǔ)庫中。

即使匹配的快照版本已下載到本地存儲(chǔ)庫中,快照版本也始終會(huì)下載到本地存儲(chǔ)庫中。...

這里是一個(gè)版本元素的例子:

<version>1.0-SNAPSHOT</version>

這里是一個(gè)版本元素的例子:...

當(dāng)在pom.xml中聲明 dependency 元素時(shí),我們必須使用 -SNAPSHOT 以及以下。

<dependency>
    <groupId>com.jenkov</groupId>
    <artifactId>java-web-crawler</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

附加到版本號(hào)的 -SNAPSHOT 標(biāo)記快照依賴庫在Maven。

我們可以配置Maven在Maven settings.xml 文件中下載快照依賴關(guān)系的頻率。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)