问题描述
|
我已经手动滚动了项目的构建系统(主要是Python + Hudson)。我经常需要做的一件事是从上游Hudson / Jenkins获取工件。
这些工件几乎可以是任何东西-例如,一个充满要处理的业务数据的zip文件,甚至是一个包含必须测试的python代码的鸡蛋。我们系统中几乎所有重要工作都依赖于其他哈德森工作所产生的工件。
我的经理建议,构建系统的下一个迭代应该用Ant替换一些我手推的组件。下一次迭代的目的是降低我们系统的复杂性,并使它们与主要使用Java和Ant(很少使用Python)的其他团队的工作保持一致。
我个人也很想借口学习蚂蚁。它似乎是一个非常有用的工具。
因此,为了不重新发明轮子,我肯定需要使用一个Ant任务,该任务可以从特定的Hudson构建中获取工件。这样的事情存在吗。如果不存在,是否可以定制一些接近我的要求的东西?我宁愿不重新发明轮子。
UPDATE1:我们非常希望100%免费的开源工具。团队中的每个人都对Ant非常满意,但是Maven是团队试图摆脱的东西。
解决方法
正确的解决方案是将工件从Hudson / Jenkins发布到工件管理器(例如Nexus或Artifactory),然后使用Ivy或Gradle之类的工件版本。
, 如果必须自己获取依赖项,则可以使用“ 0”任务。例:
<get src=\"http://jenkins/job/project-name/lastSuccessfulBuild/artifact/foo.jar\"
dest=\"/path/to/local/file\"/>
但是,我确实同意Stefan的观点-依赖关系管理可以通过他的答案中提到的工具更好地完成,而不是使用Ant自己手动将其拉低。
, 如果您刚刚开始学习ANT,那么我建议您学习gradle,它已经集成了依赖项,并且使用起来容易得多。此外,如果您需要特定的ANT任务,则可以简单地从gradle调用它,甚至可以导入整个ant脚本。
否则,我同意斯特凡·肯德尔的回答。