
# 如何将snapshot组件上传到Maven私有依赖库？
#### 背景信息
制品仓库服务支持通过以下方式上传snapshot组件：
- [通过页面上传snapshot组件]
- [通过Maven CLI命令上传snapshot组件]
- [通过编译构建将snapshot组件发布到Maven私有依赖库]
 
 #### 通过页面上传snapshot组件
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#section0)。
2. 在页面左侧仓库列表中选择snapshot仓库。单击"上传制品"，弹出"上传制品"对话框，请根据需要选择GAV定义来源。 
   ![](https://support.huaweicloud.com/cloudartifact_faq/zh-cn_image_0000001963240069.png "点击放大")
   
   
   GAV定义来源有以下两种：
   
   | **GAV定义来源模式** | **描述**                         |
   |:---|:---|
   | POM模式         | 从POM文件中解析出Maven的GAV坐标信息，然后再上传。 |
   | GAV模式         | 直接指定Maven包的坐标信息再上传。            |
      
   
   
3. 根据界面提示填写相关参数、上传对应文档完成组件上传。
 
 #### 通过Maven CLI命令上传snapshot组件
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#section0)。
2. 进入"Maven私有依赖库"，在页面左侧仓库列表中选择"snapshot"类型仓库。
3. 单击页面右上角"操作指导"，弹出"操作指导"对话框。
4. 根据配置指导配置本地Maven工具。
5. 执行mvn deploy命令上传Maven项目。
   
   在命令窗口进入maven项目"pom.xml"所在目录，输入如下命令，上传本地jar包：
   ```
   mvn deploy:deploy-file -DgroupId=com.huawei -DartifactId=aopalliance -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=D:\aopalliance-1.0-SNAPSHOT.jar -Durl={Maven Snapshot地址} -DrepositoryId=snapshots
   ```
   - DgroupId、DartifactId、Dversion、Dpackaging：可根据需要自定义。
   
   - Dfile：本地jar包所在位置的绝对路径。
   
   - Durl：Maven Snapshot地址。单击图标![](https://support.huaweicloud.com/cloudartifact_faq/zh-cn_image_0000002160060784.png)即可获取（如下图所示）。
     ![](https://support.huaweicloud.com/cloudartifact_faq/zh-cn_image_0000002159901056.png "点击放大")
     
     
    
   
   
 
 #### 通过编译构建将snapshot组件发布到Maven私有依赖库
1. 使用华为云账号[登录华为云控制台页面](https://console.huaweicloud.com/console)。
2. 单击页面左上角![](https://support.huaweicloud.com/cloudartifact_faq/zh-cn_image_0000002522310181.png)，在服务列表中选择"开发与运维 \> 华为云码道 CodeArts"。
3. 单击"立即使用"，进入CodeArts服务首页。
4. 在顶部菜单选择"服务 \> 代码托管"，进入代码托管服务。
5. 进入代码仓库，打开pom.xml文件，定义待上传组件的坐标信息（GAV信息）。 
   ![](https://support.huaweicloud.com/cloudartifact_faq/zh-cn_image_0000001963240053.png "点击放大")
   - 构建任务执行时会根据定义识别上传到私有依赖库的组件属性信息。
   
   - version：版本号，默认上传release组件。如果需要上传snapshot组件，version值以"-SNAPSHOT"结尾即可，如"1.0-SNAPSHOT"。
   
   
   
   
6. 在"构建步骤Maven构建"中，编辑编译构建任务： 
   - 在"命令"框中：使用注释mvn package命令（在命令前加#），取消注释mvn deploy（删除其命令前的#）。
   
   - 单击"发布依赖包到CodeArts私有依赖库"，勾选"配置所有pom"。 ![](https://support.huaweicloud.com/cloudartifact_faq/zh-cn_image_0000001936041638.png "点击放大")
     
   
   
   
   
7. 执行构建任务。 
   待任务执行成功后，即可在私有依赖库中找到生成的Maven组件。
   
   
 
