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

What is the difference between the GeoIP2 MaxMind pom and my local one?

我正在遵循此指南:

https://github.com/maxmind/GeoIP2-java

它说:

We recommend installing this package with Maven. To do this, add the dependency to your pom.xml:

<dependency>
    <groupId>com.maxmind.geoip2</groupId>
    <artifactId>geoip2</artifactId>
    <version>2.2.0</version>
</dependency>

在 GeoIP2 的 Git 存储库中还有 pom.xml 文件,它更长 - 它们之间有什么区别?

引用自official homepage:

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

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 if Maven isn't configured to use another. It will also automatically download all other needed dependencies (transitive dependencies),在这种情况下,它将是上面列出的依赖项,以及任何其他依赖项那些依次依赖,依此类推。

所以,简短回顾一下:如果没有像 Maven 这样的依赖项管理工具,您将需要手动确保类路径上具有所有正确的依赖项。 Maven 为您修复此问题。