标签: ant jenkins continuous-integration
我希望我的每个Git存储库都有自己的build.xml文件,但是不要复制粘贴不同构建脚本使用的大量宏定义。
组织这个的最佳方法是什么?
将ant macrodef添加到单独的Git存储库并使它们可用于我的Jenkins服务器上的所有构建项目? 例如,将它们添加到Ant安装文件夹的目录中?
有没有人有这种设置的经验?
答案 0 :(得分:1)
我也这样做。我强烈认为每个项目都应该是独立的,而不是依赖于另一个源代码库。为实现这一目标,我将常见的macrodef打包为ANTLib。这些只是jar文件,可以像其他第三方任务一样导入到ANT构建中。
以下答案解释了如何创建antlib:
这种方法的真正优势在于将ANTlib jar保存在像Nexus这样的版本化存储库中。我使用ivy来管理我的依赖项,这允许我的公共构建逻辑被版本化,使我能够在不破坏旧版本的情况下安全地更改逻辑。当你考虑它时,这是由Maven(也下载插件)实现的同一种工作流程。