云效 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參數。
altDeploymentRepository 指定了id::layout::url。
在云效的 Maven 私有倉庫服務中 release 倉庫的 id 為rdc-releases。SNAPSHOT 倉庫的 id 為rdc-snapshots。
layout 一般使用默認值 default,而 url 則為 release 倉庫或 SNAPSHOT 倉庫的 url。
上傳到SNAPSHOT 倉庫的示例命令如下:
方法三:純命令構建
不修改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版本以上
常見問題
- The packaging for this project did not assign a file to the build artifact -> [Help 1]
參考文章
- 在云效構建中使用 Maven 私有倉庫服務
- 聊聊項目打包發布到maven私倉常見的幾種方式
- Maven的生命周期 命令行與生命周期
總結
以上是生活随笔為你收集整理的云效 Flow——Java构建并通过云效上传二方库到 Maven 私有仓库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客题霸 NC22 合并两个有序的数组
- 下一篇: 牛客题霸 NC23 划分链表