Maven如何自动解决jar库的依赖性。
出版日期:2021年1月17日。
INFOMARTION > Maven如何自动解决jar库的依赖性。
概述。
Maven会自动从互联网上下载罐子,但我想解释一下它到底是如何工作的。
本文的前提是,你需要了解什么是Maven,所以如果你对Maven本身不熟悉,也应该参考以下文章。
目录
- Maven解决jar库依赖关系的能力。
- 1-1. 在pom.xml文件中应包括什么。
- 1-2. 它们是如何从网上下载的?
- 1-3. 解决要获得的罐子的依赖性的机制。
- 摘要
1. Maven解决jar库依赖关系的能力。
只需在pom.xml文件中定义所需的jar文件,Maven就能自动检索jar文件。 它还会自动学习运行该jar所需的依赖性jar。 我想解释一下它是如何工作的。
1-1. 在pom.xml文件中应包括什么。
首先,为了解决jar库的依赖性,在pom.xml文件中提供了信息。 Maven处理来自pom.xml文件的信息。 例如,如果需要 "poi-3.17.jar",它在 pom.xml 中的描述如下。 (顺便说一下,'poi-3.17.jar'是一个用于操作微软Office文件(如Excel)的jar。)
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
只需提及上述内容,就可以从互联网上下载 "poi-3.17.jar",同时从互联网上下载运行 "poi-3.17.jar "所需的配套jar。
1-2. 它们是如何从网上下载的?
对该系统的简单解释如下图所示。
从互联网上的Maven仓库下载。 如果没有设置,默认值是中央存储库。 网址如下。
https://repo1.maven.org/maven2/
如果你有兴趣,请参见以下网站,了解互联网上的资料库清单。
https://mvnrepository.com/repos
第一次,从外部资源库获取jar,但它被复制到本地资源库,从第二次开始就不被获取了。 本地资源库的位置是 "C:\Users\user\.m2"。
如果你想改变默认值的目的地,你也可以通过在pom.xml中包含以下版本库标签来改变目的地。
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
</snapshots>
</repository>
</repositories>
1-3. 解决要获得的罐子的依赖性的机制。
我们刚刚描述了一个获得'poi-3.17.jar'的例子,但是'poi-3.17.jar'需要'commons-collections4-4.1.jar'才能运行。 这意味着'poi-3.17.jar'依赖于'commons-collections4-4.1.jar'。 解决这一依赖关系的机制可以在存放'poi-3.17.jar'的Maven仓库中找到。 网址如下。
https://repo1.maven.org/maven2/org/apache/poi/poi/3.17/
我认为 "poi-3.17.pom "被存储了,在这个文件中你会发现 "poi-3.17.jar "依赖于 "commons-collections4-4.1.jar "的信息。 这意味着当检索'poi-3.17.jar'时,系统不仅检索jar文件,还检索pom文件并检查其他必要的jar文件。
2. 摘要
Maven解决jar库依赖关系的机制是,在存放要检索的jar文件的pom文件中定义依赖关系。
谢谢你一直看到最后。