Jenkins在屏幕上运行ANT exec(可见)

Jenkins在屏幕上运行ANT exec(可见),ant,jenkins,Ant,Jenkins,我有一个build.xml文件,末尾有以下行: <ant dir="${basedir}/subfolder" target="mytarget" /> 然后在子文件夹中,我有另一个build.xml文件,其中包含以下内容: <target name="mytarget"> <exec executable="open"> <arg value="${basedir}/myApp.app" /> </ex

我有一个build.xml文件,末尾有以下行:

<ant dir="${basedir}/subfolder" target="mytarget" />

然后在子文件夹中,我有另一个build.xml文件,其中包含以下内容:

<target name="mytarget">
    <exec executable="open">
        <arg value="${basedir}/myApp.app" />
    </exec>
</target>

myApp.app
应用程序设计为在屏幕上可见执行,而不是在后台执行。这是一个应用程序设计的自动机,它有鼠标移动和点击合并。我将Jenkins设置为在一个从机上构建此任务,当构建任务时,我希望Jenkins调用将启动此应用程序的ant脚本,然后我希望应用程序实际使鼠标在Jenkins从机上移动。现在Jenkins报告了一个成功的构建,但似乎什么都没有发生

更新

当我使用
failonerror=“true”
运行exec时,Jenkins日志中不会显示任何错误。Jenkins只是说mytarget:就好像它即将开始打印该目标的日志信息,然后什么都没有发生,构建成功完成,从机上什么都没有发生(应用程序没有启动)

更新2


我刚刚有一个有趣的发现。我用
/Applications/Dictionary.app
替换了行
${basedir}/myApp.app
,当我与詹金斯一起运行时,它打开了字典一小秒,然后立即关闭了它。我的应用程序也会出现这种情况吗?我的脚本在开始时有延迟,所以它可能在这段时间内关闭吗?

打开命令只是启动应用程序,而不关心其生命周期。它正在启动应用程序并将正在运行的线程返回给Ant。然后,Ant将终止
exec
任务,目标、构建以及Ant本身

我认为解决方案是将
-W
选项添加到
打开
,这样它“会等到打开(或已经打开)的应用程序退出”



默认情况下,
任务的
failonerror
设置为
false
。如果将此参数设置为
true
,则应用程序将无法执行生成。这可能会给你更多的信息。我怀疑从进程没有在屏幕上运行的权限。当我作为从机用户登录到从机上时,我可以很好地执行它。我会让你知道failonerror发生了什么这是什么系统?你是如何启动这个从机的?这个从机是一个mac迷你机。我正在GitHub上监听更改,然后当构建运行时,更新的代码被拉入从机上的工作区,然后在拉入的代码中的ant脚本被运行。然后构建成功完成。您如何启动此从属服务器?通过ssh?Webstart?你试过通过Jenkins启动其他GUI应用程序吗?我会试试这个,谢谢!现在Jenkins确实退出了,所以它通过让Jenkins睡一觉起作用了,实际上我正要把答案放在这里,这时我得到了你的回答。由于您的回答也与等待时间有关,因此这肯定会触及问题-我将测试-W并让您知道!
<exec executable="open">
    <arg value="-W" />
    <arg value="${basedir}/myApp.app" />
</exec>