在我们的开发中,通过会依赖第三方的jar包,而这些jar包由于还处于测试或开发阶段,并没有放到maven库中,这个时候,如果我们还按照原来spring boot的方式打包的话,第三方jar包是打不进来的,所以很多时候,我们在本地测试,开发没问题,一部署到服务器上,就报ClassNotFound异常。示例如下:
第三方jar包的引用方式:
- <dependency>
- <groupId>com.chhliu</groupId>
- <artifactId>chhliu-sender</artifactId>
- <version>1.0.2-tst</version>
- <scope>system</scope>
- <systemPath>${project.basedir}/lib/chhliu-sender-1.0.2-tst.jar</systemPath>// 第三方jar包放在工程目录的lib目录下
- </dependency>
这个时候,我们要在pom文件中的build标签下加上如下的配置:
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- <resources>
- <resource>// 将lib目录下的jar包拷贝到BOOT-INF/lib/目录下
- <directory>${project.basedir}/lib</directory>
- <targetPath>BOOT-INF/lib/</targetPath>
- <includes>
- <include>**/*.jar</include>
- </includes>
- </resource>
- <resource>// 如果不加上这个配置,不然src/main/resource目录下的配置文件就不会打到jar包下去了
- <directory>src/main/resources</directory>
- <targetPath>BOOT-INF/classes/</targetPath>
- </resource>
- </resources>
- </build>
这样的话,我们再使用mvn clean package的话,就会将lib目录下的jar包打到指定的目录中了。
如果,我们的项目要打成War包,那么我们需要修改成如下的配置文件。
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <webResources>
- <resource>
- <directory><span style="font-family: Arial, Helvetica, sans-serif;">${project.basedir}/lib</span><span style="font-family: Arial, Helvetica, sans-serif;"></directory></span>
- <targetPath>WEB-INF/lib/</targetPath>
- <includes>
- <include>**/*.jar</include>
- </includes>
- </resource>
- </webResources>
- </configuration>
- </plugin>
下面,大家可以动手试下了。
转自:http://blog.csdn.net/liuchuanhong1/article/details/77097590