问题背景:打包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:

java非maven加载依赖_maven

注意:这时如果你更新了pom.xml文件,那么你的仓库包iovp_apilink.jar文件夹下可能会多个lastUpdate为后缀的文件

文件解释:

java非maven加载依赖_maven_02

这个文件删掉即可。

 

1、先是在idea的project Structure 里配置Module【添加外部依赖iovp_apilink.jar包,我的jar包放在了工程WEB-INF/lib下】

java非maven加载依赖_jar包_03

2、配置Libraries【添加外部jar包iovp_apilink.jar】

java非maven加载依赖_java非maven加载依赖_04

3、配置Artifacts【选中war:exploded包,选中右边iovp_apilink.jar包右键put into lib添加外部包到WEB-INF/lib下即可】

java非maven加载依赖_jar_05

4、配置pom.xml文件【添加plugin,修改file、groupId、artifactId、version四个标签的值】

这个配置的参考地址:

<plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>install-external</id>
                            <phase>clean</phase>
                            <configuration>
                                <file>iovp_apilink.jar包绝对路径</file>
                                <repositoryLayout>default</repositoryLayout>
                                <groupId>com.hzya.external.apilink</groupId>
                                <artifactId>iovp_apilink</artifactId>
                                <version>1.0.0</version>
                                <packaging>jar</packaging>
                                <generatePom>true</generatePom>
                            </configuration>
                            <goals>
                                <goal>install-file</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

5、pom.xml文件添加iovp_apilink.jar依赖【这里的三个标签值对应上面plugin这三个标签的值】

<!--iovp_apilink包-->
        <dependency>
            <groupId>com.hzya.external.apilink</groupId>
            <artifactId>iovp_apilink</artifactId>
            <version>1.0.0</version>
        </dependency>

6、这样一通配置后我这边maven里的iovp_apilink.jar还是标红【现在是已经改过了没标红】,提示unresolved dependency不能解析依赖

java非maven加载依赖_jar包_06

7、接着clean一下 maven工程,重启idea,注释第4步配置的plugin标签第6步依赖就不标红了。哈哈哈【说实话我也不知道具体原因,反正是就这样好了,哪位如果知道原因的话麻烦评论告知一下,感谢。】