GeoIP2 MaxMind pom和我当地的pom有什么区别?

时间:2015-06-02 15:53:28

标签: java maven geoip

我正在遵循本指南:

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 文件,这个文件要长得多 - 它们之间有什么区别?

1 个答案:

答案 0 :(得分:2)

引自official homepage

  

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为你解决了这个问题。