
# 通过编译构建任务发布Maven组件并按照版本归档至私有依赖库
在软件开发过程中，开发团队经常需要使用私有组件来构建项目，以保护知识产权和提高代码复用率。然而，当团队尝试从Maven私有依赖库获取依赖包时，可能会遇到权限问题或网络延迟，导致编译构建任务失败。如何确保私有组件的安全发布和高效获取，成为开发团队面临的一大挑战。本文档将介绍如何通过编译构建任务发布私有组件到Maven私有依赖库，以及如何从Maven私有依赖库获取依赖包完成编译构建任务，以解决上述问题。
#### 费用说明
该功能需要使用代码托管（CodeArts Repo）服务与编译构建（CodeArts Build）服务，需要[开通/购买华为云码道服务组合套餐](https://support.huaweicloud.com/usermanual-devcloud/devcloud_01_0002.html)。
 #### 前提条件
- 已有可用项目。如果没有项目，请先[新建CodeArts项目](https://support.huaweicloud.com/usermanual-devcloud/codearts_01_0027.html)，例如项目名称为project_maven。
- 已添加当前账号对当前私有库的"上传"、"下载/查看"私有库组件权限，具体操作请参考[配置私有依赖库权限](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0047.html)。
 
#### 创建Maven类型私有依赖库
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#section0)。
2. 在私有依赖库页面，单击右上角"新建制品仓库"。
3. 选择本地仓库，输入仓库名称maven_local，选择Maven制品类型。"归属项目"选择[前提条件]中创建好的project_maven。
4. 单击"确定"。新建成功的Maven私有依赖库将显示在仓库视图中。
 
 #### 在代码仓库中设置组件的版本
1. 使用华为云账号[登录华为云控制台页面](https://console.huaweicloud.com/console)。
2. 单击页面左上角![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002480237172.png "点击放大")，在服务列表中选择"开发与运维 \> 华为云码道 CodeArts"。
3. 单击"立即使用"，进入CodeArts服务首页。
4. 在顶部菜单选择"服务 \> 代码托管"，进入代码托管服务。
5. 在弹框中选择代码仓库模式为"合并请求模式"并单击"确定"。
6. 在代码托管服务页面单击"新建仓库"。
7. 选择"归属项目"project_maven，单击"按模板新建"，单击"下一步"。
8. 搜索并勾选"Java Maven Demo"类型模板，单击"下一步"。
9. 输入"代码仓库名称"repo01，单击"确定"。
10. 进入代码仓库，单击"pom.xml"，查看组件配置。 
    ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002512517037.png "点击放大")
    
    
    
11. 在组件配置页面中，\<version\>代码行中为当前组件的版本号（默认为1.0）。
    
    单击页面右上方![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002512397057.png)，可以修改版本号，修改完成后单击"确定"。
    
    
 
#### 通过编译构建发布Maven私有组件到私有依赖库
1. 根据[在代码仓库中设置组件的版本]在代码仓库完成设置组件版本后，单击页面右上角"设置构建"，页面跳转至"新建构建任务"页面。
2. 在页面中选择"Maven模板"，单击"确定"。
3. 编辑步骤"Maven构建"。 
   - 工具版本按照实际选择，本文中选择"maven3.5.3-jdk8-open"。
   
   - 找到以下命令行，删除命令行前的#。
     ```
     #mvn deploy -Dmaven.test.skip=true -U -e -X -B
     ```
     找到以下命令行，在命令行前添加#。
     ```
     mvn package -Dmaven.test.skip=true -U -e -X -B
     ```
     
   
   - 在"发布依赖包到CodeArts私有依赖库"一栏勾选"配置所有pom"，并在下拉列表中选择与项目已关联的Maven私有依赖库maven01。 ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002541302225.png "点击放大")
     
     
   
   
   
   
4. 单击页面右上角"保存并执行"，执行构建任务。
 
#### 在Maven私有依赖库的版本视图中查看归档的组件
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#section0)。
2. 选择目标私有依赖库，找到通过构建任务上传的Maven私有组件。 
   参考[在代码仓库中设置组件的版本]在代码仓库中[设置组件版本]，可将多个版本组件归档至私有依赖库。
   
   
3. 单击"版本视图"。 
   在包列表中，可以查看从编译构建中获取软件包的版本数和最新版本。
   
   
4. 单击"包名"，页面将显示该软件包最新版本的概览信息。
5. 选择"文件列表"页签，在列表中可以单击目标组件操作列中的![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002512397067.png)，可将组件下载到本地。
6. 用户在本地对组件修改并设置新的版本号后，在目标私有依赖库中，单击"上传组件"，可将最新版本的组件上传至私有依赖库。 
   版本视图中的包列表显示对应组件最新上传的版本并统计版本归档过的数量。
   
   
 
