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

Posted

技术标签:

【中文标题】GeoIP2 MaxMind pom 和我本地的有啥区别?【英文标题】:What is the difference between the GeoIP2 MaxMind pom and my local one?GeoIP2 MaxMind pom 和我本地的有什么区别? 【发布时间】:2015-06-02 15:53:27 【问题描述】:

我正在遵循本指南:

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】:

引用自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 将在 repository 中搜索依赖项,如果 Maven 未配置为使用另一个,则通常是 Maven Central Repository。它还将自动下载所有其他需要的依赖项 (transitive dependencies),在这种情况下,它将是上面列出的依赖项,以及那些依次依赖的任何其他依赖项,依此类推。

所以,简单回顾一下:如果没有像 Maven 这样的依赖管理工具,您需要手动确保在类路径上拥有所有正确的依赖。 Maven 为您解决了这个问题。

【讨论】:

以上是关于GeoIP2 MaxMind pom 和我本地的有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

MaxMind GeoIP2 没有 IPv6 的结果?

Maxmind:它的任何 geoip2 数据库是不是有县 fips 代码?

MaxMind:将 GeoIP2 mmdb 加载到内存中以便快速读取

安装 GeoIP2 时出错:geoip2/geoip2 v2.3.1 需要 maxmind/web-service-common

MaxMind 的 GeoIP2 java API 线程安全吗?

使用 maxmind geoip2 呼出城市名称