项目加入本地 jar 包一般有三种方式
方法一
上传到私人远程仓库(没有试过)
方法二
install 到本地仓库
mvn install:install-file -DgroupId=自己的 groupId -DartifactId=自己的 artifactId -Dversion=自己的version -Dpackaging=jar -Dfile= jar 包地址
install 成功后就可以在 pom.xml 中按照一般的方法引入了
方案三
jar 包放在和 pom.xml 同级的 lib 文件夹下
直接在 pom.xml 中加入
<dependency>
<groupId>xxxx</groupId>
<artifactId>xxxx</artifactId>
<version>0.0.1</version>
<type>jar</type><!-- 一定要加 -->
<scope>system</scope>
<systemPath>${project.basedir}/lib/xxxx.jar</systemPath>
</dependency>
这种方式要将 jar 包加入打的 war 中,需要加入以下
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/lib/</directory>
<targetPath>WEB-INF/lib</targetPath>
<filtering>true</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
PS
我只试过后面两种,但是都出现了一种问题,就是打好的 war 包中,本地包是一个空包,在 tomcat 中启动时就会无法启动,出现 error in opening zip file.
最后的解决方案
在 WEB-INF/lib/ 中也拷入 jar 包
pom.xml 加入
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source><!-- jdk 版本 -->
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>
WEB-INF/lib/xxx.jar
</extdirs>
</compilerArguments>
</configuration>
</plugin>
不加入方案三的第二部分内容,要方案三的第一部分内容。
终于又打包成功了,但是这只适合于本地 jar 包很少的情况。