【问题标题】:Why do my Jenkins / Ant builds always fail?为什么我的 Jenkins / Ant 构建总是失败?
【发布时间】:2015-11-06 20:12:11
【问题描述】:

我正试图让詹金斯弄清楚。我有一套 selenium 测试,我可以通过 Eclipse 构建和运行,或者使用 ant 通过命令行构建和运行,但是每当我尝试 Jenkins 时,它们都会失败。 Jenkins 的控制台报告说我的 build.xml 文件中定义的 ws.jars 的值不存在;但是该目录确实存在!同样,从命令行构建没有问题。

任何建议都将不胜感激,因为我这几天一直在努力解决这个问题。

谢谢。

我的 build.xml 文件:

<property environment="env"/>
<property name="ws.home" value="${basedir}"/>
<property name="ws.jars" value="/Users/username/Documents/All JAR Files/All in one place"/>
<property name="test.dest" value="${ws.home}/build"/>
<property name="test.src" value="${ws.home}/src"/>
<property name="ng.result" value="test-output"/>

我在名为 path 的 build.xml 文件中创建了一个新目标。这是我使用 Jenkins 运行时的输出。

Started by user anonymous
Building in workspace /Users/<user>/local_repo/qa-automation/selenium-java/my-projects
[my-projects] $ /Users/Shared/Jenkins/Home/tools/hudson.tasks.Ant_AntInstallation/Install_automatically/bin/ant path
Buildfile: /Users/<user>/local_repo/qa-automation/selenium-java/my-projects/build.xml
path:
 [echo] 
 [echo]                 My path - /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin:/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin:/usr/bin:/bin:/usr/sbin:/sbin
 [echo] 
BUILD SUCCESSFUL
Total time: 0 seconds
Finished: SUCCESS

【问题讨论】:

  • 1) 能否提供 build.xml 中声明 jar 的部分?
  • 你在 windows / linux 下运行吗?可以是访问用户权限吗,请记住,通常您的 jenkins 设置将使用 Jenkins 用户
  • 我在 OS X 中运行。我尝试将 ws.jars 目录的所有者更改为 jenkins,但得到了同样的错误。
  • 你能回显 PATH 或写下你的环境变量吗?当 Jenkins 在 executor 上运行作业时(无论是从属还是主控),它会在 /bin/sh 中的非交互式 shell 脚本中执行该作业,而不是作为 /bin 中的登录 shell /bash。这意味着您获得的环境变量比从命令行获得的要少。如果是这样的话,我可能有一个解决方案。
  • 当然。我在名为 path 的 build.xml 文件中创建了一个新目标。我添加到我原来的帖子。我喜欢这是要去的地方。我注意到我的 jre 在那里 2x。

标签: selenium jenkins ant


【解决方案1】:

我怀疑这是由ws.jars 路径中的空格引起的。您应该通过添加\ 来转义这些空格,尝试更改路径:

<property name="ws.jars" value="/Users/username/Documents/All JAR Files/All in one place"/>

用这个:

<property name="ws.jars" value="/Users/username/Documents/All\ JAR\ Files/All\ in\ one\ place/"/>

【讨论】:

  • 感谢您的建议。我已经试过了,没有任何区别。
  • 我什至尝试创建一个没有空格的新目录并修改我的 build.xml 以指向它。还是没有骰子。 /用户/用户名/文档/一站式服务
【解决方案2】:

感谢大家的建议。我有一段时间没有考虑过这个问题,但昨晚我有一些时间并且能够再次处理这个问题。事实证明,正如 'rgulia' 指出的那样,它与在非交互式 shell 中执行的 Jenkins 作业有关。所以最后,我尝试将我的 ws.jars 目录复制到 /Users/Shared/Jenkins,将所有者更改为“jenkins”,然后繁荣,我的构建能够继续。
原来的错误信息太误导人了。并不是该目录不存在,而是“jenkins”没有访问和/或权限。 我希望这些信息可以帮助其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多