文章目录

  • 场景
  • 解决


场景

对接淘宝的代打代发项目,需要进入淘宝的sdk,而开放平台没有提供maven库,所以需要需要将sdk从
开平下载到本地之后导入到系统

解决

  1. 通过idea导入, 这种会编译失败: Caused by: java.lang.NoClassDefFoundError: com/taobao/api/response/DaifaSupplierOrderQueryResponse$DaifaScpOrderModel

idea本地启动项目添加javaagent idea引入本地jar包_docker

idea本地启动项目添加javaagent idea引入本地jar包_maven_02

  1. 通过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>

idea本地启动项目添加javaagent idea引入本地jar包_maven_03

  1. 建立私服
    3.1 环境

ubuntu18.04

  1. 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 查看容器

idea本地启动项目添加javaagent idea引入本地jar包_资源库_04

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 创建一个仓库

idea本地启动项目添加javaagent idea引入本地jar包_maven_05


3.6 上传包

idea本地启动项目添加javaagent idea引入本地jar包_maven_06

  1. 本地模拟导入

4.1 原理

maven在本地查不到包的情况下,会去远程仓库查找,所以可以直接放到本地,让maven可以在本地找到

4.2 如下图 我的本地资源是D:\config\repo目录下

idea本地启动项目添加javaagent idea引入本地jar包_maven_07


那么只需要在D:\config\repo\com\vph\sdk\vop-sdk\1.0.0 放入sdk就可以了

idea本地启动项目添加javaagent idea引入本地jar包_资源库_08


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>