maven打包不打lib目录里面的jar包解决办法

本文介绍了解决在Maven项目中因引入第三方jar包导致的ClassNotFound异常的方法。针对不同的打包方式(WAR或JAR),提供了具体的pom配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现原因

项目原来在Tomcat中运行的war包,使用maven构建,依赖由maven管理,现在需要与第三方系统对接,用第三方技术,第三方提供若干jar包,使用时直接把这些jar包放到lib目录,打包时发现报ClassNotFundException,找不到这些类;

解决方案

打成jar包,pom文件中添加:

<build>
   <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.0</version>
            <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
            <compilerArguments>
               <extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>
            </compilerArguments>
          </configuration>
       </plugin>
     </plugins>
  </build>

打成war包,pom文件中添加 :

<build>
    <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-war-plugin</artifactId>
         <configuration>
           <webResources>
             <resource>
               <directory>${project.basedir}/src/main/resources/lib</directory>
                 <targetPath>WEB-INF/lib/</targetPath>
                 <includes>
                   <include>**/*.jar</include>
                 </includes>
            </resource>
          </webResources>
        </configuration>
      </plugin>
    </plugins>
 </build>

打成的是war包,解决方法是pom中加:

 <build>
     <resources>
         <resource>
             <directory>${project.basedir}/src/main/webapp/WEB-INF/lib</directory>
             <targetPath>WEB-INF/lib/</targetPath>
         <resource>
     </resources>
 </build>

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值