maven加载第三方jar不能加载

Posted 曹军

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven加载第三方jar不能加载相关的知识,希望对你有一定的参考价值。

这个问题处于项目组,总算是解决了。下面是一些自己的做法。

1.说明介绍

  公司现在用的是spring+maven,使用的公共maven库没有问题,但是想要把一些老的项目改造这种框架会出现一些问题。

  因为一些老的项目中有好多第三方的jar包或者是自己的jar包(尤其是这种自己的包),maven库上没有。

  最初的解决方案是一个个的deploy到maven库上,但是遇到太多的三方jar包就太费事了,同时会有一些成本问题。

  网上查了一下发现maven有一种方式可以将本地的Jar包依赖到项目中而不需要先deploy到maven库上,值得学习一下。

 

2.在项目中新建一个lib

  这个lib可以在项目下建,只要可以找到即可。

  不过这里讲lib目录放在src下面了,问题不大。

  

3.将jar包放进来

  

 

4.修改pom文件 

 <!--添加外部依赖-->
 basedir是自带变量,指的是当前项目的绝对路径,三围自己随便写。
<dependency>
    <groupId>ChartDirector</groupId>
    <artifactId>ChartDirector</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/lib/ChartDirector.jar</systemPath>
</dependency>

  

5.问题所在

  用mvn clean package打成jar包后运行就是报错,正式找不到这些jar包中的相关类。把jar包解压后在WEB-INF/lib里面也确实没有发现用上述方式引入的jar包,看来是没有把src/lib目录里面的jar打进去,后来通过查找也终于找到方法了。

 

6.修改pom文件,在build标签下增加如下配置

      <!--设置maven-war-plugins插件,否则外部依赖无法打进war包-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <webResources>
                    <resource>
                            <directory>${project.basedir}/src/lib</directory>
                            <targetPath>WEB-INF/lib/</targetPath>
                            <includes>
                                <include>**/*.jar</include>
                            </includes>
                    </resource>
          </webResources>
        </configuration>
      </plugin>        

  

7.maven clean 与 install

  

 

8.看效果

  这个可以直接从target中看。

  

 

进入这个目录下,然后打开war包:

  

 

  

 

以上是关于maven加载第三方jar不能加载的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot学习-使用maven加载本地jar包

Intellij IDEA在maven项目中添加外部Jar包运行

maven加载jar包配置

IDEA maven中引入的依赖不自动导入项目

如何上传jar包至Maven私服

maven 各个版本加载jar 的顺序有啥区别