我们使用Gradle + Maven Plugin
使用以下代码将jar文件上传到我们的工件库:
uploadArchives {
repositories {
mavenDeployer {
repository(url: <our maven repo URL>)
pom.groupId = 'group1'
pom.version = '???'
pom.artifactId = 'artifact1'
}
}
}
我们在CI服务器中设置了一个钩子,每次推送到主Git存储库都会触发上传。我有两个问题:
在提交时自动上传jar文件是个好主意吗?什么是缺点?
如何为上传的罐子提供自动新版本号,如最新版本加一?是否可以从maven repo列出工件的所有可用版本?
答案 0 :(得分:1)
它基本上不是一个坏主意但是你需要考虑如何为给定的工件指定依赖关系 - 例如如果引入了一些向后不兼容的更改,则上载工件的其他客户端可能会出现问题。因此,使用+
指定依赖关系可能会有问题,并且在每次发布后手动切换版本可能会很累人。在每次构建之后弄清楚为什么要上传工件这是一个好主意?也许考虑仅从某个分支上传工件
每个CI服务器都应将构建号作为env变量(或系统属性)传递给正在构建的工件。在自动版本控制中使用此数字是个好主意。可以从存储库下载版本,但需要完成其他工作。下载maven-metadata.xml
(例如this一个),解析它,获取最新版本,即将完成。