起因:我们的项目原为一个在Tomcat中运行的war包,使用maven构建,依赖由maven管理,现在需要和第三方系统对接,使用第三方技术,第三方提供若干jar包,使用时直接把这些jar包放到lib目录,打包时发现报ClassNotFundException,找不到这些类
解决办法:
网络查找的方法:
若打成jar包,pom文件中添加:
1 <build> 2 <plugins> 3 <plugin> 4 <groupId>org.apache.maven.plugins</groupId> 5 <artifactId>maven-compiler-plugin</artifactId> 6 <version>3.6.0</version> 7 <configuration> 8 <source>1.8</source> 9 <target>1.8</target> 10 <encoding>UTF-8</encoding> 11 <compilerArguments> 12 <extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs> 13 </compilerArguments> 14 </configuration> 15 </plugin> 16 </plugins> 17 </build>
若打成war包,pom文件中添加:
1 <build> 2 <plugins> 3 <plugin> 4 <groupId>org.apache.maven.plugins</groupId> 5 <artifactId>maven-war-plugin</artifactId> 6 <configuration> 7 <webResources> 8 <resource> 9 <directory>${project.basedir}/src/main/resources/lib</directory> 10 <targetPath>WEB-INF/lib/</targetPath> 11 <includes> 12 <include>**/*.jar</include> 13 </includes> 14 </resource> 15 </webResources> 16 </configuration> 17 </plugin> 18 </plugins> 19 </build>
个人打成的是war包,解决方法是pom中加:
1 <build> 2 <resources> 3 <resource> 4 <directory>${project.basedir}/src/main/webapp/WEB-INF/lib</directory> 5 <targetPath>WEB-INF/lib/</targetPath> 6 <resource> 7 </resources> 8 </build>