merge branch Match-id-8f93bd8817da54839104a391a2131793389dc315
merge branch
Match-id-8f93bd8817da54839104a391a2131793389dc315
本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 Deploy2.action的参数servers中,id需要与pom文件中<distributionManagement/>元素的仓库id一致。可以参考当前仓库pom.xml文件和maven-cloudartifact-action-deploy-demo.yml
<distributionManagement/>
步骤说明:(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
<dependency>
<groupId>com.huawei.devcloud</groupId>
<artifactId>demoapp</artifactId>
<version>1.0.0</version>
</dependency>
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
使用华为云CodeArts Artifact Maven 私仓workflows样例
本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等里面的参数值。
serversmirrorsrepositoriespluginRepositoriesCodeArts Artifact Maven 私仓workflows样例
1.mvn deploy: 推送maven组件到 CodeArts Artifact Maven 私仓
步骤说明:
(1)代码检出
(2)华为云CodeArts Artifact maven 私仓配置
(3)maven deploy 推送maven二进制包到华为云CodeArts Artifact maven 私仓
详情可参考 ./github/workflows/maven-cloudartifact-action-deploy-demo.yml
2.mvn package: 拉取CodeArts Artifact Maven 私仓的maven组件
步骤说明:
(1)代码检出
(2)华为云CodeArts Artifact maven 私仓配置
(3)maven package 拉取华为云CodeArts Artifact maven 私仓二进制包构建工程
详情可参考 ./github/workflows/maven-cloudartifact-action-package-demo.yml
workflow sample中使用公网地址说明