解决maven无法加载本地lib/下的jar包问题(程序包XXX不存在)

Posted 练好本领,报国杀敌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决maven无法加载本地lib/下的jar包问题(程序包XXX不存在)相关的知识,希望对你有一定的参考价值。

这次一个项目用到maven编译,我在本地开发的时候jar包都是放在WEB-INF/lib目录下,通过
 
BuildPath将jar包导入,然后用MyEclipse中的:maven package命令打成war包,这个war包在tomcat下能正常运行,war包下是有lib下的jar包的。

但是我往服务器上传的是项目源码,用SVN上传,然后服务器上用maven插件编译运行,编译时报错:找不到WEB-INF/lib下jar包。显然maven编译时不会自动加载WEB-INF/lib下的jar包。

项目的jar包是一部分从maven库下载,一部分放在本地WEB-INF/lib下,其中放在本地的jar包是在maven库中找不到的。这就需要maven既加载maven库中的jar包,又要加载本地WEB-INF/lib下的
jar包。

现在终于解决问题了,方法是在pom.xml文件中添加一段配置:

      <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;${project.basedir}/src/main/resources/lib</extdirs>
                    </compilerArguments>
                </configuration>
            </plugin>

扩展:

另外,放入resources包下也是可以的,若多个lib包,只需要在多个路径中间用分号“;”隔开(windows环境),

在linux环境下,用冒号隔开“:” 这句话等待验证










以上是关于解决maven无法加载本地lib/下的jar包问题(程序包XXX不存在)的主要内容,如果未能解决你的问题,请参考以下文章

Web项目lib下的jar包无法自动加载

解决maven打包打不进lib下的第三方jar包问题

maven仓库搜不到我想要的jar怎么办

maven仓库搜不到我想要的jar怎么办

新拉取的代码无法加载到的问题

maven target 怎么运行 找不到或无法加载主类