SpringBoot-如何引入第三方jar包

SpringBoot项目一般使用maven管理包资源,但实际开发中添加的jar包可能不在中央仓库,这种情况就需要自行引入。方法如下:

1、 新建一个lib目录放jar包,可以建在src下,maven依赖如下:

lib:位于项目根目录下
${basedir}:是pom.xml的内置属性,表示项目根目录,即包含pom.xml文件的目录
gva:没有特定要求,跟随一般命名规则即可
scop:指定当前包的依赖范围和依赖的传递性,可选的有compile, provided, runtime, test, system,这里必须是system,具体原因查看scop各个选项的含义。

2、 注意事项

通过这种方式引入,在编码的时候没有问题,但是用mvn clean package打成jar包后运行就是报错,正是找不到这些jar包中的相关类。把jar包解压后在BOOT-INF/lib里面找不到用上述方式引入的jar包。需要对pom文件添加打包资源配置,把src/lib下的jar打到BOOT-INF/lib下,如下:



注意:必须要增加第二个resource,不然src/main/resources下的配置文件打不进jar包。由于此类依赖不是通过Maven仓库解析的,而且往往与本机系统绑定,可能造成构建的不可移植,因此应该谨慎使用。

3、 如果要打成war包,则pom文件需要这样改:

添加依赖,目的:排除springboot集成的tomcat


1616831909(1).png

添加插件配置,目的:使引入的jar包加入打包文件

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <webResources>
             <resource>
                 <directory>lib</directory>
                 <targetPath>WEB-INF/lib/</targetPath>
                 <includes>
                     <include>**/*.jar</include>
                 </includes>
             </resource>
       </webResources>
    </configuration>
</plugin>

注意:最好把tomcat换成版本8及以上,否则会报java.lang.NoClassDefFoundError: javax/el/ELManager 错误

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容