您好,我需要一些帮助来覆盖詹金斯的蚂蚁的user.home
属性。我在jenkins上创建了一个简单的工作,它在主服务器的辅助机器上运行构建脚本。脚本的任务之一是使用ant的user.home
属性并访问某些文件。问题是,当我尝试在从机的命令行中回显此属性时,我看到C:\Users\Administrator
,但是当我从Jenkins服务器运行完全相同的脚本时,我看到C:\
。这种差异导致构建在Jenkins上失败。任何人都可以告诉我这种差异的原因是什么?有什么办法可以重写这个吗?如何从Jenkins服务器覆盖ant的user.home属性?
我试过在我的作业的配置文件中有一个名为user.home
的属性,但似乎没有选中它。另一个有趣的一点是,当我在配置文件中改变了user.home
值一些胡言乱语并运行在从服务器上的命令行蚂蚁,它仍然把它捡起为C:\Users\Administrator
我使用ant 1.7.1
和Jenkins 1.598
所以这是有点复杂。我会尽量以最好的方式解释它。我创建了一个调用'BUILDA.xml'并使用'CONFIGA.INI'的简单作业。在这个构建文件中,我基本上下载了一些文件并做了一些重构。现在,在其中一个目标中,我更改了ant build dir几次,并使用不同的配置文件。这些是我没有编写的构建脚本,它们使用属性'user.home'来访问某些文件。我尝试在'CONFIGA.INI'中添加'user.home',但没有帮助。另外,我在不同的从站上运行与其他用户相同的工作。 – 2015-03-02 23:34:16
我发现的唯一解决方法是以管理员用户身份启动Jenkins和奴隶服务,并将奴隶重新连接到主服务器,以便它获取最新的'user.home'。 你说使用与管理员不同的ID来启动Jenkins是件好事。这是为什么? – 2015-03-02 23:34:20
这是一件安全的事情。随着奴隶进程本身和它运行的代码。如果从服务器以管理员身份运行,则错误或恶意用户可能会导致问题。考虑是否有人在您的ant构建脚本中添加了一个exed'cmd rmdir/s/r c:\'。我知道这不太可能,但最好限制管理员帐户的使用。 – thekbb 2015-03-03 02:34:59