【问题描述】
由于对接公司外部产品,导致公司内网上的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