Skip to content

本次与算法厂家对接,使用了他们的Jar包,最先考虑的是不使用Maven仓库,便于离线开发。 首先采用了方案:

 <dependency>
        <groupId>com.tievd.third</groupId>
        <artifactId>arcvideo</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/face-api-1.0.jar</systemPath>
    </dependency>

但很多人讲到这里就没讲了,你会发现在IDE里会运行的非常好,一旦部署在线上环境,就会出现莫名其妙的问题。比如我遇到的不会抛异常,会一直卡在对象创建上。

后来一直找不到问题出现在哪里,就改用了私服,发现问题解决,所以定位在问题肯定出现在打包上: 第一步:确认解压之前的Jar包发现确实没有把第三方包打入进去 第二步:在build节点加入一下语句使包正确的导入

   <resources>
            <resource>
                <directory>${project.basedir}/lib</directory>
                <targetPath>BOOT-INF/lib/</targetPath>
                        <includes>
                           <include>**/*.jar</include>
                        </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <targetPath>BOOT-INF/classes/</targetPath>
            </resource>
</resources>

第三步:重新打包 第四步:验证,发现问题得到解决 百思不得其解的是:这些依赖包没有打入项目中为什么没有报错,比如ClassNotFind等异常,我的猜测是,可能项目区各个class path 搜索相应的Jar包,搜索比较耗费时间,但是等了很久也没有见报错。所以问题不一定在这里。 问题就是:既然缺少依赖包但为什么没有抛异常

文章来源于自己总结和网络转载,内容如有任何问题,请大佬斧正!联系我