通常,我们使用maven都是通过pom.xml来引入项目所需的依赖,但有时一些依赖在公共资源库上找不到,我们就可以通过本地引入的方式来引入,如IDEA,在Project Structure - Libraries中可以加入本地依赖:
这样就可以使用本地的jar包了,但需要注意的是,本地的jar包在mvn install时,并不会自动加入编译,这就需要我们手动去加入这项配置:
在<compilerArguments>
中配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<!-- 配置本地引入jar的地址,此处配置为web项目的常规路径 -->
<compilerArguments>
<extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
但在新版本maven中,<compilerArguments>
不建议使用,改为如下方式:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
<compilerArgs>
<arg>-verbose</arg>
<arg>-Xlint:unchecked</arg>
<arg>-Xlint:deprecation</arg>
<arg>-bootclasspath</arg>
<arg>${env.JAVA_HOME}/jre/lib/rt.jar</arg>
<arg>-extdirs</arg>
<arg>${project.basedir}/src/main/webapp/WEB-INF/lib</arg>
</compilerArgs>
</configuration>
</plugin>
其中每个<arg>
标签之间相当于以空格进行分隔,作为编译命令的参数。
注意:
如果-extdirs需要配置多个目录,windows使用分号进行分隔。linux(unix)使用冒号进行分隔