我正在遵循本指南:
https://github.com/maxmind/GeoIP2-java
它说:
我们建议您使用Maven安装此软件包。为此,请将依赖项添加到pom.xml:
<dependency>
<groupId>com.maxmind.geoip2</groupId>
<artifactId>geoip2</artifactId>
<version>2.2.0</version>
</dependency>
GeoIP2的Git存储库中还有 pom.xml 文件,这个文件要长得多 - 它们之间有什么区别?
答案 0 :(得分:2)
Apache Maven是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以从一个中心信息管理项目的构建,报告和文档。
将 pom.xml 视为Maven的核心。在文件中,您可以指定依赖项(最常见的是 jar 文件)和其他信息,例如应如何构建项目。如果不深入研究,Maven的优势之一是它管理项目的依赖项。
为了回答您的具体问题,GeoIP2使用Maven管理其依赖关系。它的pom.xml的这一部分定义了它们:
<dependencies>
<dependency>
<groupId>com.maxmind.db</groupId>
<artifactId>maxmind-db</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
<version>1.20.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>
</dependencies>
通过在您自己的项目中使用Maven,您只需要将一个依赖项添加到GeoIP2。然后Maven将在存储库中搜索依赖关系,通常是 Maven Central Repository ,如果Maven未配置为使用另一个。它还将自动下载所有其他所需的依赖项(transitive dependencies),在这种情况下,它将是上面列出的依赖项,以及依赖于它们的任何其他依赖项,依此类推。
所以,简单回顾一下:如果没有像Maven这样的依赖管理工具,您需要手动确保在类路径上拥有所有正确的依赖关系。 Maven为你解决了这个问题。