本READEME指导是基于Maven CloudArtifact Action使用华为云CodeArts Artifact Maven 私仓workflows样例
制品仓库(CodeArts Artifact),用于管理源代码编译后的构建产物,支持Maven、Npm、PyPI、Docker、NuGet等常见制品包类型。
使用华为云Artifact Maven 私仓有如下场景:
1.mvn deploy: 推送maven组件到 CodeArts Artifact Maven 私仓
2.mvn package: CodeArts Artifact Maven 私仓的maven组件
(1)新建私有依赖库
(2)管理用户权限
上传maven组件需要权限: 仓库角色为仓库管理员、开发者
下载maven组件需要权限: 仓库角色为仓库管理员、开发者、浏览者
不是仓库成员或者没有对应权限需要租户帐号、仓库管理员修改为对应的仓库角色。
(3) CodeArts Artifact Maven 私仓账号信息获取
私有依赖库首页->点击需要的Maven仓库->右上角操作指导->点击下载配置文件->Maven配置在下载的settings.xml文件当中
Maven-cloudartifact-action 参数都属于Maven settings.xml文件的元素,详细了解可以到官网Maven Settings 。本action四个参数servers, mirrors,repositories,pluginRepositories都是json array的格式。下面给出四个参数的具体的样例。用户可以根据自己实际的仓库信息替换id,url等里面的参数值。
servers
steps:
- uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
with:
servers: '[{"id": "serverId", "username": "${{ secrets.MAVEN_USERNAME }}", "password": "${{ secrets.MAVEN_PASSWORD }}"}]'
mirrors
steps:
- uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
with:
mirrors: '[{"id": "mirrorId", "mirrorOf": "mirrorOf", "url": "mirrorUrl"}]'
repositories
steps:
- uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
with:
repositories: '[{ "id": "some-repository", "url": "http://<private_repo_url>", "releases": { "enabled": "true" }, "snapshots": { "enabled": "false" } }]'
pluginRepositories
steps:
- uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
with:
plugin_repositories: '[{ "id": "some-plugin-repository", "url": "http://<private_repo_url>", "releases": { "enabled": "true" }, "snapshots": { "enabled": "false" }}]'
步骤说明:
(1)代码检出
(2)华为云CodeArts Artifact maven 私仓配置
(3)maven deploy 推送maven二进制包到华为云CodeArts Artifact maven 私仓
name: Maven CodeArts Artifact Action Deploy Demo
on:
push:
branches:
master
jobs:
Publish-to-CodeArts-Artifact:
runs-on: ubuntu-latest
steps:
# 代码检出
- uses: actions/checkout@v2
# GitHub Action环境默认java版本为11,可以根据自己项目需求修改java版本
- name: Set up JDK 11 for maven build
uses: actions/setup-java@v1
with:
java-version: 11
# 华为云CodeArts Artifact maven 私仓配置
- name: Setup Huawei Cloud CodeArts Maven Artifact
uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
with:
servers: '[{"id": "release_repo_id", "username": "${{ secrets.MAVEN_USERNAME }}", "password": "${{ secrets.MAVEN_PASSWORD }}"}]'
# 推送maven二进制包到华为云CodeArts Artifact maven 私仓
- name: deploy artifact
run: |
mvn deploy -e -X
详情可参考 ./github/workflows/maven-cloudartifact-action-deploy-demo.yml
【注意】
1.mvn deploy, pom文件里面必须包含有效的<distributionManagement/>
元素,可以参考当前仓库pom.xml文件
Reference: Maven Deploy
2.action的参数servers中,id需要与pom文件中<distributionManagement/>
元素的仓库id一致。可以参考当前仓库pom.xml文件和maven-cloudartifact-action-deploy-demo.yml
步骤说明:
(1)代码检出
(2)华为云CodeArts Artifact maven 私仓配置
(3)maven package 拉取华为云CodeArts Artifact maven 私仓二进制包构建工程
name: Maven CodeArts Artifact Action Package Demo
on:
push:
branches:
master
jobs:
Install-CodeArts-Artifact:
runs-on: ubuntu-latest
steps:
# 代码检出
- uses: actions/checkout@v2
# GitHub Action环境默认java版本为11,可以根据自己项目需求修改java版本
- name: Set up JDK 11 for maven build
uses: actions/setup-java@v1
with:
java-version: 11
# 华为云CodeArts Artifact maven 私仓配置
- name: Setup Huawei Cloud CodeArts Maven Artifact
uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
with:
servers: '[{"id": "release_repo_id", "username": "${{ secrets.MAVEN_USERNAME }}", "password": "${{ secrets.MAVEN_PASSWORD }}"}]'
repositories: '[{ "id": "central", "url": "https://repo1.maven.org/maven2", "releases": { "enabled": "true" }, "snapshots": { "enabled": "false" } },{ "id": "release_repo_id", "url": "https://<release_private_repo_url>/", "releases": { "enabled": "true" }, "snapshots": { "enabled": "false" } }]'
# 拉取华为云CodeArts Artifact maven 私仓二进制包构建工程
- name: package artifact
run: |
mvn package -e -X
详情可参考 ./github/workflows/maven-cloudartifact-action-package-demo.yml
【注意点】
1.首先确保需要下载的组件在CodeArts Artifact maven 私仓
2.将需要下载的组件添加进pom文件,如下面的依赖
<dependency>
<groupId>com.huawei.devcloud</groupId>
<artifactId>demoapp</artifactId>
<version>1.0.0</version>
</dependency>
3.下载组件的maven坐标(groupId:artifactId:version)与当前工程的坐标不能一样。
4.settings.xml中repositories中需要账号信息的仓库id需与settings.xml中server节点下的仓库id一致。也就是action输入参数servers与repositories的id一致。可以参考当前仓库的文件./github/workflows/maven-cloudartifact-action-package-demo.yml
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。