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 数据库是不是有县 fips 代码?
MaxMind:将 GeoIP2 mmdb 加载到内存中以便快速读取
安装 GeoIP2 时出错:geoip2/geoip2 v2.3.1 需要 maxmind/web-service-common