當(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)目越來越大,我們將需要越來越多的外部依賴。
當(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)系是開發(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)系的頻率。
更多建議: