目录
一、下载ipdatabase项目代码
GitHub地址:https://github.com/wzhe06/ipdatabase
使用git下载(没安装git的可以看一下这篇文章:Git下载、安装与环境配置)
git clone https://github.com/wzhe06/ipdatabase.git
二、编译ipdatabase
在下载下来项目的路径下输入maven编译命令
mvn clean package -DskipTests
编译后生成的jar包在target目录下
三、安装到maven仓库
将这个jar包安装到自己的maven仓库中
mvn install:install-file -Dfile=E:\开发相关\java\workspace\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar -DgroupId=com.ggstar -DartifactId=ipdatabase -Dversion=1.0 -Dpackaging=jar
查看本地maven库是否加上了这个要用的jar包
四、项目上使用
打开IDEA在pom.xml中引入依赖。
<!-- 解析IP地址 -->
<dependency>
<groupId>com.ggstar</groupId>
<artifactId>ipdatabase</artifactId>
<version>1.0</version>
</dependency>
测试代码
package com.qt.wisdomteaching.datacenter.util
import com.ggstar.util.ip.IpHelper
/**
* IP解析工具类
*/
object IpUtils {
def getCity(ip:String) = {
IpHelper.findRegionByIp(ip)
}
def main(args: Array[String]) {
println(getCity("218.75.35.226"))
}
}
运行报错
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/openxml4j/exceptions/InvalidFormatException
at com.ggstar.util.ip.IpHelper.getRegionRelationMap(IpHelper.java:88)
at com.ggstar.util.ip.IpHelper.getIpRelation(IpHelper.java:58)
at com.ggstar.util.ip.IpHelper.buildTrain(IpHelper.java:33)
at com.ggstar.util.ip.IpHelper.<clinit>(IpHelper.java:27)
at com.sid.com.project.IpUtils$.getCity(IpUtils.scala:7)
at com.sid.com.project.IpUtils$.main(IpUtils.scala:11)
at com.sid.com.project.IpUtils.main(IpUtils.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.openxml4j.exceptions.InvalidFormatException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
因为少了poi的包,在pom.xml中加上。这两个包在我们从github上下载的ipdatabase源码的pom.xml中能看到,直接复制过来。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
再运行
报错
java.io.FileNotFoundException: file:\F:\maven\apache-maven-3.3.9-bin\repository\com\ggstar\ipdatabase\1.0\ipdatabase-1.0.jar!\ipRegion.xlsx (文件名、目录名或卷标语法不正确。)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at com.ggstar.util.file.PoiUtil.getWorkbook(PoiUtil.java:17)
at com.ggstar.util.ip.IpHelper.getRegionRelationMap(IpHelper.java:88)
at com.ggstar.util.ip.IpHelper.getIpRelation(IpHelper.java:58)
at com.ggstar.util.ip.IpHelper.buildTrain(IpHelper.java:33)
at com.ggstar.util.ip.IpHelper.<clinit>(IpHelper.java:27)
at com.sid.com.project.IpUtils$.getCity(IpUtils.scala:7)
at com.sid.com.project.IpUtils$.main(IpUtils.scala:11)
at com.sid.com.project.IpUtils.main(IpUtils.scala)
java.lang.NullPointerException
at com.ggstar.util.ip.IpHelper.getRegionRelationMap(IpHelper.java:90)
at com.ggstar.util.ip.IpHelper.getIpRelation(IpHelper.java:58)
at com.ggstar.util.ip.IpHelper.buildTrain(IpHelper.java:33)
at com.ggstar.util.ip.IpHelper.<clinit>(IpHelper.java:27)
at com.sid.com.project.IpUtils$.getCity(IpUtils.scala:7)
at com.sid.com.project.IpUtils$.main(IpUtils.scala:11)
at com.sid.com.project.IpUtils.main(IpUtils.scala)
找不到ipRegion.xlsx 文件,查看从github上下载的ipdatabase源码,在resources中有两个文件。把这两个文件放到我们项目的resources下
运行结果