【发布时间】:2013-06-30 18:13:06
【问题描述】:
我正在使用Jenkins、Gradle 和Artifactory 对新的构建系统进行原型设计。在指定构建工件及其目的地方面,这些工具中似乎存在冲突或重叠的功能。我看到了三个前进的道路:
- 使用 Jenkins Artifactory plugin 在 Jenkins 中指定特定任务的工件设置。
- 使用 Gradle Artifactory plugin 在 Gradle 构建脚本中指定工件设置。
- 使用标准 Gradle "maven" plugin 在 Gradle 构建脚本中指定通用 maven 存储库设置。
我看到了所有这些方法的优缺点,但据我所知,我们的构建没有缺少关键功能。
为了让我更加困惑,Gradle Artifactory plugin wiki 声明:
构建服务器集成 - 在您的系统中运行 Gradle 构建时 持续集成构建服务器,推荐使用其中之一 用于配置 Jenkins、TeamCity 或 Bamboo 的 Artifactory 插件 通过构建信息捕获解决并发布到 Artifactory, 通过您的构建服务器 UI。
所以,有一些问题可以让对话继续进行:
- 将构建脚本与工件逻辑混为一谈有意义吗?添加开发人员不部署可能会有所帮助。目前,我只看到从 Jenkins 任务上传的构建工件。
- 如果 CI 服务器关闭,将所有这些构建逻辑留在任务配置中是否会使我们面临问题?
- 对于通过 CI 接口完成的工件更改的版本控制如何?
- 我见过简单的 Bamboo 配置,它们通过 CI 服务器 UI 而不是 pom 指定构建工件。这只是一种糟糕的构建做法吗?
- 是否有一种杀手级工具集成功能可以将其中一种方法与另一种方法区分开来?
- 构建信息对象有多大用处?是否仅在 Jenkins Artifactory 插件中可用,而在 Gradle Artifactory 插件中不可用?
我真的很希望听到这些工具的现有用户的意见,以及哪些陷阱/要求可能导致他们采用上述方法之一(或者甚至可能是我尚未考虑过的更好的方法)。
【问题讨论】:
标签: jenkins gradle build-automation jenkins-plugins artifactory