1 问题描述
在项目中,会引用到 maven 仓库以外的本地 jar 包,有时一个,有时多个。
通常我们会把这些本地的 jar 包,放在 resources/* 或 webapp/* 或其他的目录下。这时,
我们就要做2件事情:
第1件:在编译时,可以引用这些本地 jar包;
第2件:在打 war 包时,可以把这些引用得本地 jar 包,导出到 war 包中;
方式有多种,这里只说一种。
2 解决方式
2.1 使用构建 war 包插件
说明:将项目目录 src/main/resources/pay 包内所有文件导出到 WEB-INF/lib 目录中,
且原目录中的文件名称需要满足以 .jar 结尾;
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/src/main/resources/pay</directory>
<targetPath>WEB-INF/lib</targetPath>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
2.2 引用编译
在 pom.xml 中引用依赖,作用在与把本地 jar 以 maven库的形式加到项目中;
添加后可在 Dependencies 中看到;
<dependencies>
<dependency>
<groupId>aliyun.alipay</groupId>
<artifactId>alipay-sdk</artifactId>
<version>java20161213173952</version>
<type>jar</type>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/pay/alipay-sdk-java20161213173952.jar</systemPath>
</dependency>
</dependencies>
3 其他
在打包后会遇到一种 jar 包大小发生变化的情况,例如:原来的 jar 包大小为3M,打包后变成了6M,
只需要将 2.1 配置中的 filtering 参数 配置为 false 即可。
如果有不足或错误的地方,请留言。