有没有Ant任务可以从Hudson/Jenkins获取工件?

5 投票
3 回答
1896 浏览
提问于 2025-04-16 19:37

我自己动手做了一个项目的构建系统,主要用的是Python和Hudson。经常需要从上游的Hudson或Jenkins获取一些工件。

这些工件可以是任何东西,比如一个装满业务数据的压缩文件,或者一个包含很多Python代码的包,这些代码需要进行测试。我们系统中几乎每个重要的任务都依赖于其他Hudson任务生成的工件。

我的经理建议在下一个版本的构建系统中,用Ant替换掉我手动做的一些部分。这样做的目的是为了简化我们的系统,让它们和其他主要使用Java和Ant(很少用Python)的团队的工作保持一致。

另外,我个人也很想借此机会学习Ant,感觉这个工具非常有用。

所以,为了不重复造轮子,我肯定需要一个Ant任务,能够从特定的Hudson构建中获取工件。请问有没有这样的东西?如果没有,是否有类似的东西可以让我进行定制?我不想再重复造轮子。


更新1:我们非常倾向于使用100%免费的开源工具。团队里的每个人都对Ant很满意,不过我们正在努力摆脱Maven。

3 个回答

0

如果你刚开始学习ANT,我建议你先学gradle。因为gradle已经把处理依赖的部分整合进去了,用起来简单多了。而且如果你需要用到某个特定的ANT任务,你可以直接在gradle里调用它,甚至可以把整个ANT脚本导入进来。

另外,我也同意Stefan Kendall的回答。

4

如果你需要自己获取依赖项,可以使用get这个任务。举个例子:

<get src="http://jenkins/job/project-name/lastSuccessfulBuild/artifact/foo.jar"
     dest="/path/to/local/file"/>

不过,我同意Stefan的看法——管理依赖项最好还是用他提到的工具,而不是自己手动用Ant去下载。

7

正确的做法是把Hudson/Jenkins生成的文件发布到一个专门的文件管理工具,比如Nexus或者Artifactory。然后,你可以用像Ivy或者Gradle这样的工具来获取这些文件的不同版本。

撰写回答