天天看点

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

出现原因

项目原来在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>