Maven引入本地Jar包并打包进War包中
1.概述
在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来。
2. 拷贝至项目根目录
项目根目录即pom.xml文件所在的同级目录,可以在项目根目录下创建文件夹lib,如下图所示:
这4个Jar包是识别网页编码所需的包。
3. 配置pom.xml,依赖本地Jar
配置Jar的dependency,包括groupId,artifactId,version三个属性,同时还要包含scope和systemPath属性,分别指定Jar包来源于本地文件,和本地文件的所在路径。
<dependency>
<groupId>cpdetectorgroupId> <artifactId>cpdetectorartifactId> <version>1.0.10version> <scope>systemscope> <systemPath>${basedir}/lib/cpdetector_1.0.10.jarsystemPath> dependency> <dependency> <groupId>antlrgroupId> <artifactId>antlrartifactId> <version>2.7.4version> <scope>systemscope> <systemPath>${basedir}/lib/antlr-2.7.4.jarsystemPath> dependency> <dependency> <groupId>chardetgroupId> <artifactId>chardetartifactId> <version>1.0version> <scope>systemscope> <systemPath>${basedir}/lib/chardet-1.0.jarsystemPath> dependency> <dependency> <groupId>jargsgroupId> <artifactId>jargsartifactId> <version>1.0version> <scope>systemscope> <systemPath>${basedir}/lib/jargs-1.0.jarsystemPath> dependency>
其中,${basedir}是指项目根路径
4. 配置Maven插件将本地Jar打包进War中
在进行以上配置以后,编写代码时已经可以引入Jar包中的class了,但是在打包时,由于scope=system,默认并不会将Jar包打进war包中,所有需要通过插件进行打包。
修改pom.xml文件,在plugins标签下加入下面的代码
<plugin>
<groupId>org.apache.maven.pluginsgroupId> <artifactId>maven-dependency-pluginartifactId> <version>2.10version> <executions> <execution> <id>copy-dependenciesid> <phase>compilephase> <goals> <goal>copy-dependenciesgoal> goals> <configuration> <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/liboutputDirectory> <includeScope>systemincludeScope> configuration> execution> executions> plugin>
这样,打出来的war包中,就会包含本地引入的jar依赖了。