Maven项目如何使用github上已有的开源项目
1、Clone or download github上的开源项目
以github上ip地址解析的项目为例,进行介绍。地址是:https://github.com/wzhe06/ipdatabase
2、编译下载的项目
进入到pom.xml文件所在的文件夹下,执行如下编译命令。
mvn clean package -DskipTests
如果一切顺利的话,会显示如下信息。
那么,我们编译完成的jar包如何在idea中使用呢?项目是通过maven进行管理的,如何添加dependency呢?
3、安装jar包到本地仓库
将步骤2中生成的jar包安装到本地maven仓库中,命令如下
mvn install:install-file -Dfile="C:\Users\chengruru\Downloads\ipdatabase-master\target\ipdatabase-1.0-SNAPSHOT.jar" -DgroupId=com.ggstar -DartifactId=ipdatabase -Dversion=1.0-SNAPSHOT -Dpackaging=jar
参数说明:
-Dfile:编译生成的jar文件位置
-DgroupId: 之后我们使用依赖时对应的groupId(自定义)
-DartifactId: dependency对应的artifactId(自定义)
-Dversion: 版本信息(自定义)
安装成功,则会显示如下信息。
[INFO] Installing C:\Users\chengruru\Downloads\ipdatabase-master\target\ipdatabase-1.0-SNAPSHOT.jar to D:\Tools\Downloads\MavenRepository\com\ggstar\ipdatabase\1.0-SNAPSHOT\ipdatabase-1.0-SNAPSHOT.jar
[INFO] Installing C:\Users\chengruru\Downloads\ipdatabase-master\pom.xml to D:\Tools\Downloads\MavenRepository\com\ggstar\ipdatabase\1.0-SNAPSHOT\ipdatabase-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
4、在IDEA中使用安装的依赖
在pom文件中添加依赖,
<dependency>
<groupId>com.ggstar</groupId>
<artifactId>ipdatabase</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
然后,就可以使用相应的功能,对解析ip地址。
public class IpUtils {
public static void main(String[] args) {
String region = IpHelper.findRegionByIp("58.30.15.255");
System.out.println(region); // 北京
}
}
可能存在的问题:
(1)log4j依赖,在仓库中找不到
我在步骤2:编译下载的项目时候,碰到了。查看其pom文件,对应的log4j的版本是2.8.2的,只需要将其版本改成1.2.71即可。
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
(2)部分类找不到
解析ip地址时,报错。因为我并没有报这个问题,所以,这个问题试个人情况而定。如果出现了,就将github项目pom文件中对应的dependency添加到自己的项目pom文件中。
(3)文件不存在
github项目依赖两个文件,ipRegion.xlsx和ipDatabase.csv。若是出现这个问题,直接将github项目文件中resource中的两个文件,复制到自己项目的resources文件夹中即可。