
# 通过客户端上传/下载Maven组件
CodeArts Artifact支持与本地客户端对接，用户A可以通过客户端的方式将本地客户端中的私有组件上传至CodeArts Artifact私有依赖库，其他用户再通过客户端的方式从CodeArts Artifact私有依赖库下载用户A上传的组件，实现组件的共享或传递。
#### Maven组件介绍
Maven组件是通过Maven构建过程生成的输出文件，通常包括编译后的代码（如JAR、WAR、EAR文件）和相关的元数据（如依赖信息、版本号等）。关于Maven组件的更多介绍，请参考[通过私有依赖库页面上传Maven组件](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0010.html#cloudartifact_01_0010__section147721214143210)。
#### 约束与限制
不同用户账号的私有依赖库仓库密码不同，当用户以不同账号访问私有依赖库时，如果需要使用仓库密码，则需要在各仓库"操作指导"中重新下载配置文件获取仓库密码。
#### 前提条件
- 使用客户端工具为Maven、Gradle，请确保已安装JDK、Maven和Gradle。
- 已[创建Maven仓库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0008.html)。
- 需要具备当前仓库的"下载/查看"权限，如需获取"下载/查看"的权限，请参考[配置私有依赖库权限](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0047.html)配置。
 
#### 通过客户端上传Maven组件
- **使用客户端工具为Maven，请确保已安装JDK和Maven。**
  1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
  
  2. 在仓库列表中选择对应的Maven仓库。
  
  3. 单击页面右侧"操作指导"。
  
  4. 在"操作指导"对话框，"选择依赖管理工具"为"Maven"。
  
  5. 单击"下载配置文件"下载settings.xml文件，将下载的配置文件直接替换或按提示修改maven的settings.xml文件。 ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002545298365.png "点击放大")
     
     
  
  6. 使用以下命令进行客户端上传（上传时需要到上传的pom文件所在目录下执行命令），命令示例如下：
     ```
     mvn deploy:deploy-file -DgroupId={groupId} -DartifactId={artifactId} -Dversion={version} -Dpackaging=jar -Dfile={file_path} -DpomFile={pom_path} -Durl={url} -DrepositoryId={repositoryId} -s {settings_path} -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
     ```
     - **参数说明**
       - DgroupId ：上传的groupId
       
       - DartifactId ：上传的artifactId
       
       - Dversion ：上传的版本version
       
       - Dpackaging ：上传包的类型（jar,zip,war等）
       
       - Dfile ：上传实体文件所在的路径
       
       - DpomFile : 上传实体pom文件所在的路径(Release版本请注意：如果没有该参数，系统会自动生成pom，pom有特殊要求的请指定该参数)
       
       - pom文件中的DgroupId ，DartifactId ，Dversion 要与外面的一致，否则报409。
       
       - DpomFile 和（DgroupId ，DartifactId ，Dversion） 可以二选一（即如果选择DgroupId ，DartifactId ，Dversion，则可以不用DpomFile）
       
       - Durl ：上传文件到仓库的路径
       
       - DrepositoryId ：这个是settings配置的用户名密码所对应的id，如下图所示： ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002545218387.png "点击放大")
         ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002513858416.png "点击放大")
         
        
      
   
- **使用客户端工具为Gradle，请确保已安装JDK和Gradle。**
  1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
  
  2. 在左侧边栏中单击待与本地环境对接的仓库名称。
  
  3. 单击页面右侧"操作指导"。
  
  4. 在"操作指导"对话框，"选择依赖管理工具"为"Gradle"。
  
  5. 单击"下载配置文件替换"，从私有依赖库页面下载init.gradle文件。 ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002545298383.png "点击放大")
     
     
  
  6. 在本地项目下找到"build.gradle"文件，需要在gradle文件下添加以下命令，命令示例如下：
     ```
     uploadArchives {
         repositories {
             mavenDeployer {repository(url:"***") {
                     authentication(userName: "{repo_name}", password: "{repo_password}")
                 }
                 //构造项目的Pom文件
                 pom.project {
                     name = project.name
                     packaging = 'jar'
                     description = 'description'
                 }
             }
         }
     }
     ```
     - url：上传文件到仓库的路径，可在对应Maven私有依赖库界面，单击![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002545218405.png)获取。
     
     - {repo_name}：从对应Maven仓库页面下载init.gradle文件中获取username。
     
     - {repo_password}：从对应Maven仓库页面下载init.gradle文件中获取password。
      
  
  7. 到本地项目所在目录下执行命令：
     ```
     gradle uploadArchives
     ```
     
  
  8. 返回对应的Maven仓库查看已上传的组件。
   
 
#### 通过客户端下载Maven组件
使用客户端工具为Maven，请确保已安装JDK和Maven。
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
2. 在私有依赖库页面选择对应的Maven仓库。
3. 单击页面右侧"操作指导"。
4. 在"操作指导"对话框，"选择依赖管理工具"为"Maven"。
5. 单击"下载配置文件"，从私有依赖库页面下载settings.xml文件，将下载的配置文件直接替换或按提示修改maven的settings.xml文件。 ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002520752772.png "点击放大")
   
6. 使用以下命令进行客户端下载：
   ```
   mvn dependency:get -DremoteRepositories={repo_url} -DgroupId={groupId} -DartifactId={artifactId} -Dversion={version} -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
   ```
   ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002551792765.png "点击放大")
   
 
#### 相关文档
- 如果从Maven客户端下载私有依赖库组件失败，提示http错误码403，解决方法请参考：[客户端下载私有依赖库组件，返回http错误码403提示，该如何处理？](https://support.huaweicloud.com/cloudartifact_faq/cloudartifact_02_0015.html)
- 如需通过编译构建任务发布Maven组件并按照版本归档至私有依赖库，具体操作请参考[通过编译构建任务发布Maven组件并按照版本归档至私有依赖库](https://support.huaweicloud.com/bestpractice-cloudartifact/cloudartifact_06_0003.html)。
 
