在maven项目中,我们的项目依赖一般取自local的repository或者远程的repository,比如下面这个配置:
maven <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.0</version> </dependency>
一般而言,maven会先去本地的repository寻找,如果找不到,就会依据\
不过有时候,我们依赖的jar并不在任何repository中,可能就是从第三方下载的1个sdk,怎么办?
比如上面拼多多的sdk并没有提供maven依赖坐标,而是直接提供了1个下载地址。
maven有办法处理这种情况,它支持systemscope的定义方式,可以加载本地任意路径下的jar包。
1.直接将sdk下载到本地,在maven项目的根目录中新建1个lib文件夹。将下载的sdk拷贝到lib文件夹里。
2.修改pom文件,添加如下依赖
maven <dependency> <groupId>pdd</groupId> <artifactId>pop-sdk</artifactId> <type>jar</type> <version>1.15</version> <scope>system</scope> <systemPath>${pom.basedir}/lib/pop-sdk.jar</systemPath> </dependency>
其中groupId和artifactId都可以自定义,systemPath配置的是我们maven项目的根目录下lib文件夹中的jar。
3.如果发现有些配置文件没有拷贝到打的jar中,可以修改pom文件,添加如下依赖。
maven <resources> <resource> <directory>${project.basedir}/lib</directory> <targetPath>/BOOT-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <targetPath>/BOOT-INF/classes</targetPath> <includes> <include>**/**</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> </resource> </resources>
这一步并不是必要的,我添加了下面的配置是因为打包以后apollo配置文件app.properties没拷贝到项目中导致拉取配置失败,项目没有启动起来。