云效 Flow——Java构建并通过云效上传二方库到 Maven 私有仓库

Posted Starzkg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云效 Flow——Java构建并通过云效上传二方库到 Maven 私有仓库相关的知识,希望对你有一定的参考价值。

解决方案

当用户开通了 Maven 私有仓库服务后,云效会为用户生成两个私有仓库,一个用于存放 release 版本的二方库,一个用于存储 SNAPSHOT 版本的二方库。

Release 仓库地址示例:

https://packages.aliyun.com/maven/repository/24409-release-87w1FL/

SnapShot 仓库地址示例:

https://packages.aliyun.com/maven/repository/24409-snapshot-AA0Hx0/

方法一:pom.xml配置

在项目代码库根目录的 pom.xml 中指定分发的仓库地址,示例如下:

<distributionManagement>
	<repository>
		<id>rdc-releases</id>
		<url>https://packages.aliyun.com/maven/repository/24409-release-87w1FL/</url>
	</repository>
	<snapshotRepository>
		<id>rdc-snapshots</id>
		<url>https://packages.aliyun.com/maven/repository/24409-snapshot-AA0Hx0/</url>
	</snapshotRepository>
</distributionManagement>

然后在云效中创建一条流水线,新建一个java构建的步骤,写入构建命令:

mvn clean deploy-Dmaven.test.skip

如果你的pom.xml配置的软件包版本是以-SNAPSHOT结尾,比如版本为1.0-SNAPSHOT,会自动发布到snapshot仓;如果想发到release仓,可以将命令改为mvn clean deploy-Dmaven.test.skip -P rdc-releases

方法二:构建命令

在构建命令中指定分发的仓库地址。
方式是在Maven命令中指定-DaltDeploymentRepository参数。

mvn -DaltDeploymentRepository=rdc-releases::default::https://packages.aliyun.com/maven/repository/24409-release-87w1FL -Dmaven.test.skip

altDeploymentRepository 指定了id::layout::url。
在云效的 Maven 私有仓库服务中 release 仓库的 id 为rdc-releases。SNAPSHOT 仓库的 id 为rdc-snapshots。
layout 一般使用默认值 default,而 url 则为 release 仓库或 SNAPSHOT 仓库的 url。
上传到SNAPSHOT 仓库的示例命令如下:

mvn -DaltDeploymentRepository=rdc-snapshots::default::https://packages.aliyun.com/maven/repository/24409-snapshot-AA0Hx0 -Dmaven.test.skip

方法三:纯命令构建

不修改pom.xml

mvn clean install org.apache.maven.plugins:maven-deploy-plugin:2.8:deploy -DaltSnapshotDeploymentRepository=rdc-releases::default::https://packages.aliyun.com/maven/repository/24409-release-87w1FL -DaltReleaseDeploymentRepository=rdc-snapshots::default::https://packages.aliyun.com/maven/repository/24409-snapshot-AA0Hx0 -Dmaven.test.skip

得确保deploy插件是基于2.8版本以上

常见问题

参考文章

以上是关于云效 Flow——Java构建并通过云效上传二方库到 Maven 私有仓库的主要内容,如果未能解决你的问题,请参考以下文章

阿里云 云效Devops流水线Flow自动化部署Docker项目

高效使用Java构建工具,Maven篇|云效工程师指北

项目版本管理的最佳实践:云效飞流Flow篇

如何构建一个基于Maven的Java项目

新功能企业级Maven私有仓库服务开放公测

上传本地Jar包到阿里云的云效私有仓库