构建步骤:“调用ant”与“从shell运行ant”

时间:2012-05-21 19:32:58

标签: jenkins

我目前正在使用jenkins在预期的发布条件下部署应用程序,并且我被迫以root用户身份在已部署的系统上运行JUnit测试(因为应用程序具有仅可由root用户访问的某些文件) 。

我没有使用“调用ant”构建步骤来运行测试,而是使用sudo从“执行shell”构建步骤运行ant,类似于......

sudo ant -file build.xml -D.... test

因为jenkins用户具有执行此操作的必要root权限,但不能访问上述文件。

我意识到这样做会在工作空间中创建一些具有错误权限的文件夹,但我在“执行shell”后更正了这一点。

一切似乎都很好,但感觉就像是一种解决方法。

我的问题是,与构建步骤“调用ant”相比,以这种方式运行ant有什么不利之处吗?...或者有人能看到更好的方法吗?

4 个答案:

答案 0 :(得分:1)

ANT构建步骤背后的主要思想是它提供跨平台的一致性。所以你应该尽可能多地使用它,以避免配置地狱" - 不同配置数量的组合爆炸。然而,有时候,一个男人必须做一个男人必须做的事情。

答案 1 :(得分:1)

考虑到你的限制,我认为你的解决方案很好。

回答你的问题:

...is there any disadvantage of running ant in this manner...?

首先想到的是,如果你有一个分布式的Jenkins部署,一些运行Windows的从服务器,以及一些运行UNIX的从服务器,那么这显然不起作用(或者至少需要更多的工作 - 例如,安装/配置Cygwin)。但我不认为这是你真正关心的事情。

另一种可以说更清晰的解决方案是设置一个以root身份运行的Jenkins从属服务器(如果需要,可以在Windows上运行“管理员”)并将您的工作绑定到它,坚持为您调用“调用Ant”Ant调用。但这需要更多的工作来设置,并且可能不值得努力。

答案 2 :(得分:0)

詹金斯用shell命令翻译“调用ant”,你可以查看这个看构建的控制台输出,所以如果你按照你说的方式解决了你的问题,我认为它是相同的

答案 3 :(得分:0)

如果一切正常,使用shell中的ant似乎不成问题。正如您所提到的,修改后的文件权限可能是执行后的问题。