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
添加插件配置,目的:使引入的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 错误