maven加载本地jar

时间:2023-03-09 08:36:55
maven加载本地jar

【问题描述】

由于对接公司外部产品,导致公司内网上的maven库中并不存在对应的SDK jar,因此,需要通过maven加载本地jar的方式来实现工程编译。

【方法】

方法很简单,

1、在resources下边键lib文件夹,将对应的jar放在该位置

2、在pom文件中添加对应依赖即可。scope定义为system,然后通过systemPath指定对应的jar路径。

    <dependencies>
<dependency>
<groupId>scylla</groupId>
<artifactId>scylla</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/xxxx.jar</systemPath>
</dependency>

3、另外,需要增加如下配置

    <build>
<resources>
       <!-- 这里将配置文件在编译时,拷贝到编译后的路径下 -->
<resource>
<directory>src/main/resources/</directory>
<excludes>
<exclude>**/xxx.jar</exclude>
</excludes>
</resource>
<!-- 这里是为了将需要的jar拷贝到编译后的目录下 -->
<resource>
<targetPath>../../WebContent/WEB-INF/lib/</targetPath>
<directory>src/main/resources/lib/</directory>
<includes>
<include>**/xxxx.jar</include>
</includes>
</resource> </resources>
</build>

另外,学习了scope的几种参数

* compile,缺省值,适用于所有阶段,会随着项目一起发布。 
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

参考博文:https://www.cnblogs.com/hzzll/p/6738955.html