在maven项目中,大多人在开发过程中有时候有些包确实不在自己公司的私服,不在中央仓库,也不在任何一个地方,当然我们可以把它打进仓库里,但是假设说现在有一个情况就是项目需要加载一个外部的jar包放在maven项目中,我们应该怎么办?如何让项目里的代码能够成功引入外部加载的jar包,可以使用如下操作。
首先,先找一个合适的地方,我一般会在resources
资源文件夹下新建一个lib
文件夹,然后就丢在里面,如图所示。
其次,在pom.xml
中添加如下配置
<dependency>
<groupId>自己取名字</groupId>
<artifactId>自己取名字</artifactId>
<version>1</version>
<scope>system</scope>
<systemPath>${pom.basedir}/src/main/resources/lib/自己需要加载的.jar</systemPath>
</dependency>
做到这一步,确实我们在写代码的时候可以成功使用jar包中的类,而且使用开发工具启动,调试都是正常,很多人觉得这样就可以了。如果会参与发布的小伙伴们会发现,如果只是这样,那么mvn package
出来的最终jar包运行起来会报错,提示找不到类定义异常
,加如下配置即可解决问题。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--起作用的关键位置-->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
这样,maven就能真正把外部jar包在编译的时候加载进来。