文章目录
- 场景
- 解决
场景
对接淘宝的代打代发项目,需要进入淘宝的sdk,而开放平台没有提供maven库,所以需要需要将sdk从
开平下载到本地之后导入到系统
解决
- 通过idea导入, 这种会编译失败: Caused by: java.lang.NoClassDefFoundError: com/taobao/api/response/DaifaSupplierOrderQueryResponse$DaifaScpOrderModel
- 通过pom文件导入
<!--淘宝代打代打代发-->
<dependency>
<groupId>nlp</groupId>
<artifactId>localjar</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>/Users/carsonlius/platformProject/platform-sync-app/libs/taobao-sdk-java-auto_1650267548196-20220421.jar</systemPath>
</dependency>
- 建立私服
3.1 环境
ubuntu18.04
- 3.2 搭建Nexus
# 创建配置
docker pull sonatype/nexus3
cd /usr/local/
mkdir docker
cd docker
mkdir nexus
cd nexus
vim docker-compose.yml 内容如下
version: '3.1'
services:
nexus:
restart: always
image: sonatype/nexus3
container_name: nexus
ports:
- 8081:8081
volumes:
- /usr/local/docker/nexus/data:/nexus-data
# 使用下面的命令(docker-compose up -d)启动后会在当前目录生产data目录,需要加上读写权限
chmod 777 data -R
# 安装docker-compose
apt-get install docker-compose
# 启动容器
docker-compose up -d
3.3 查看容器
3.4 登录
默认地址是ip+8081
默认用户: admin
默认密码:/usr/local/docker/nexus/data/admin.password文件可以查看
登录后需要修改账号密码
3.5 创建仓库
默认安装有以下这几个仓库,在控制台也可以修改远程仓库的地址,第三方仓库等。
hosted:宿主仓库库或托管资源库。
存放本公司开发的jar包,可是正式版本也是是测试版本放在本地的资源库,零零散散的jar
从远程仓库中下不到,只能自己在网上找,找到jar下载下来,放在托管资源库中,交给nexus统一管理。proxy:代理仓库或代理资源库。
代理中央仓库、Apache下测试版本的jar包。
配置了外网的maven远程仓库地址的资源库,本地找不到,就会通过代理资源库中的地址,找到远程仓库,从远程仓库中下载所需要的jar,比如从阿里的仓库下载。group:组仓库或组资源库。
使用时连接组仓库,包含Hosted(宿主仓库)和Proxy(代理仓库)
组资源库中并没有jar包
而是把代理资源库和托管资源库统一配置到组资源库中,然后组资源库作为一个唯一的public提供给所有人使用。
建议使用该方式,既可以下载私服jar包,也可以下载中央仓库或阿里等其他服务的,前提是需要将这些添加到该组中
3.5.1 创建一个仓库
3.6 上传包
- 本地模拟导入
4.1 原理
maven在本地查不到包的情况下,会去远程仓库查找,所以可以直接放到本地,让maven可以在本地找到
4.2 如下图 我的本地资源是D:\config\repo目录下
那么只需要在D:\config\repo\com\vph\sdk\vop-sdk\1.0.0 放入sdk就可以了
4.3 生成pom文件,生命groupId和version
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.vph.sdk</groupId>
<artifactId>vop-sdk</artifactId>
<version>1.0.0</version>
</project>
4.4 项目中引入
<dependency>
<groupId>com.vph.sdk</groupId>
<artifactId>vop-sdk</artifactId>
<version>1.0.0</version>
</dependency>