有时候在项目开发中,需要很多依赖的 jar 包,其中依赖的 jar 包也会依赖其他的 jar 包,导致jar 包的管理很容易不全。 如果使用Maven默认的打包方式的话,打成项目jar包后,会导致其他第三方jar包无法找到的异常信息,报错ClassNotFoundException。 以下有两种方法可以规避这个问题。
一,在pom.xml文件中配置,将依赖的jar包放到指定的文件夹中
项目下新建一个文件夹,一般在src下,存放jar包。
<dependency>
<groupId>commons-dbutils</groupId> <!-随便写->
<artifactId>commons-dbutils</artifactId> <!-随便写->
<version>1.6</version> <!-随便写->
<scope>system</scope><!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->
<systemPath>${project.basedir}/src/Lib/ezmorph-1.0.5.jar</systemPath> <!-固定写法,后面跟上jar包所在目录->
</dependency>
1.如果打的包是war包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/Lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<include>**/*.jar</include>
</resource>
</webResources>
</configuration>
</plugin>
2.如果是jar包
<resources>
<resource>
<directory>src/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>
也可以使用maven命令进行jar包打包,在进行依赖,个人比较喜欢这种,比较简便