问题背景:打包maven工程成war包提示缺少httpInvoker类,这个类就是iovp_apilink.jar中的一个类。
问题原因:初步猜想是因为这个包是用友u8c调用api时用的,没有在maven中央仓库管理找不到对应的依赖dependcy。
解决方案:1、iovp_apilink.jar包安装到本地仓库,2、通过依赖标签dependcy在pom.xml中引用iovp.apilink.jar即可。
解决了一天,试了网上各种方法也没成功的一个问题再次记录一下,如果能帮到你的话那最好。。。
必读:首先唠叨几句,这篇不能称为文章的xxx【我也不知道该叫啥】,暂且叫它日志因为它只能给你带来一点解决这一问题的思路。这篇日志重点说的是解决maven工程添加外部依赖包问题【也就是maven中央仓库搜不到的依赖,比如用友的iovp_apilink.jar用来调用u8c接口用的一个包】。
安装iovp_apilink.jar到本地仓库:
mvn install:install-file -Dfile=E:iovp_apilink.jar -DgroupId=com.hzya.external.apil
ink -DartifactId=iovp_apilink -Dversion=1.0.0 -Dpackaging=jar
cmd中输入mvn如果提示不是可运行命令是因为没有配置maven_home环境变量【这个自行百度配置吧,很多教程】。
配置完了maven环境变量后cmd输入mvn -v 可查看maven版本,我的maven是3.6.1
配完maven环境变量执行上述脚本安装iovp_apilink.jar:
注意:这时如果你更新了pom.xml文件,那么你的仓库包iovp_apilink.jar文件夹下可能会多个lastUpdate为后缀的文件
文件解释:
这个文件删掉即可。
1、先是在idea的project Structure 里配置Module【添加外部依赖iovp_apilink.jar包,我的jar包放在了工程WEB-INF/lib下】
2、配置Libraries【添加外部jar包iovp_apilink.jar】
3、配置Artifacts【选中war:exploded包,选中右边iovp_apilink.jar包右键put into lib添加外部包到WEB-INF/lib下即可】
4、配置pom.xml文件【添加plugin,修改file、groupId、artifactId、version四个标签的值】
这个配置的参考地址:https://blog.csdn.net/txp1993/article/details/78889804
org.apache.maven.plugins
maven-install-plugin
install-external
clean
iovp_apilink.jar包绝对路径
default
com.hzya.external.apilink
iovp_apilink
1.0.0
jar
true
install-file
5、pom.xml文件添加iovp_apilink.jar依赖【这里的三个标签值对应上面plugin这三个标签的值】
com.hzya.external.apilink
iovp_apilink
1.0.0
6、这样一通配置后我这边maven里的iovp_apilink.jar还是标红【现在是已经改过了没标红】,提示unresolved dependency不能解析依赖
7、接着clean一下 maven工程,重启idea,注释第4步配置的plugin标签第6步依赖就不标红了。哈哈哈【说实话我也不知道具体原因,反正是就这样好了,哪位如果知道原因的话麻烦评论告知一下,感谢。】