Gradle maven 部署程序版本控制

Gradle maven deployer versioning

我们正在使用 Gradle + Maven Plugin 使用以下代码将 jar 文件上传到我们的工件存储库:

uploadArchives {
   repositories {
      mavenDeployer {
         repository(url: <our maven repo URL>) 
         pom.groupId = 'group1'
         pom.version = '???'
         pom.artifactId = 'artifact1'
      }
   }
}

我们在 CI 服务器中设置了一个挂钩,每次推送到主 Git 存储库时都会触发上传。我有两个问题:

  1. 提交时自动上传 jar 文件是个好主意吗?缺点是什么?

  2. 如何给上传的jar自动添加新的版本号,比如最新版本加一?是否可以从 Maven 存储库中列出工件的所有可用版本?

  1. 这基本上不是一个坏主意,但是您需要考虑如何为给定的工件指定依赖项 - 例如如果引入了一些向后不兼容的更改,则上传工件的其他客户端可能会出现问题。因此,使用 + 指定依赖项可能会有问题,并且在每次发布后手动切换版本可能会很累。弄清楚为什么要在每次构建后上传工件是个好主意?也许考虑只从某个分支上传工件

  2. 每个 CI 服务器都应该将内部版本号作为环境变量(或系统 属性)传递给正在构建的工件。在自动版本控制中使用这个数字是个好主意。可以从存储库下载版本,但需要完成额外的工作。下载 maven-metadata.xml(例如 this 一个),解析它,获取最新版本,你就快完成了。