$ ant clean compile notexist install
在这里我得到了BUILD FAILED
因为notexist
不作为目标存在,这是预期的。但是有没有办法忽略或跳过未知目标?或者也许将未知目标映射到已知目标(这对我来说是无操作的)?
背景
我们将 Atlassian Bamboo 用于我们的 CI 服务器,每当我们想在构建中添加 ant 目标时,我们都会冒着破坏旧代码分支的风险。这是因为如果我们通过 CI 运行旧版本,它可能不包含目标,因此会失败。因此,我们只需要编辑build.xml
文件,要么使用depends
or <ant>
,但这并没有给我们想要的灵活性。
例子
今天我们有:
ant clean selenium.tests
我们想添加一个新目标来测试我们的 REST 服务。目标是rest.tests
。因此,我希望我的命令是
ant clean selenium.tests rest.tests
但是对于旧分支,rest.tests
还不存在。到目前为止,我们的解决方案是添加rest.tests
作为依赖项selenium-tests
(因为我们的 build.xml 受版本控制),但这意味着我们不能自己运行selenium.tests
。
事后看来,我们应该刚刚创建了一个代理目标,例如integration.tests
(我们已经test
用于单元测试),它将委托给这两个目标。但是除非我原来的问题有解决方案,否则我们甚至不能添加integration.tests
到 CI 中。