有时候在项目需要依赖第三方jar包,但中央仓库没有,需要手工导入到本地仓库,然后再导入依赖,我们只需要在本地将其安装到本地maven仓库即可。
步骤如下:
1)解压jar包,扎到META-INF目录,在里面找到pom.xml打开,找到对应的group id和artifactId等信息,我的如下:
<groupId>com.alibaba.platform.shared</groupId>
<artifactId>ocean.client.java.basic</artifactId>
<version>1.0.8</version>
<packaging>jar</packaging>
<name>ocean.client.java.basic</name>
<description>ocean sdk for user</description>
2)打开cmd,执行如下指令
mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar
我这里执行的是:
mvn install:install-file -Dfile=D:\work\1688\SDK\ocean.client.java.biz.jar -DgroupId=com.alibaba.platform.shared -DartifactId=ocean.client.java.basic -Dversion=1.0.8 -Dpackaging=jar
效果如下:
然后到本地仓库发现就有对应的jar包了,在maven项目中可以直接引用:
<!-- 1688 SDK依赖 -->
<dependency>
<groupId>com.alibaba.platform.shared</groupId>
<artifactId>ocean.client.java.basic</artifactId>
<version>1.0.8</version>
</dependency>
异常问题
但是我这里发现会报错,因为该sdk还有父依赖parent,而parent是
<parent>
<groupId>com.taobao</groupId>
<artifactId>parent</artifactId>
<version>2.0.0</version>
</parent>
这个在中央仓里也没有,也找不到,所以需要将其去掉,不然会一直报错,解决办法就是:手动构造一份无 parent 的干净 pom,安装时指定 -DpomFile,我这里先把原pom.xml复制出来,将其中的parent依赖去掉,然后命名为clean-pom.xml,重新安装,执行安装命令,带上 -DpomFile 强制使用我们干净的 pom,覆盖 jar 内置 pom:
mvn install:install-file
-Dfile=D:\work\1688\SDK\ocean.client.java.biz.jar
-DpomFile=D:\work\1688\SDK\clean-pom.xml
-DgroupId=com.alibaba.platform.shared
-DartifactId=ocean.client.java.basic
-Dversion=1.0.8
-Dpackaging=jar
这样就有可以了,完美解决依赖父引用报错为问题了。
微信扫一扫
支付宝扫一扫