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

原文地址:https://www.cnblogs.com/woniu4/p/10581924.html