【问题标题】:Ant absolute path to single file in fileset文件集中单个文件的 Ant 绝对路径
【发布时间】:2013-03-07 09:28:37
【问题描述】:

我正在使用 Jenkins 和 Email-Ext 插件来自动化 PHP 单元测试。如果测试失败,我想给自己发送一封包含压缩测试报告的通知电子邮件。

Email-Ext 插件需要在附件字段中定义 Ant 文件集。 压缩测试报告可以在这里找到:

D:\Test_Reports\test-report-failed.zip

我找不到将fileset 与单个文件的绝对路径一起使用的工作示例。

我尝试了以下方法,但没有成功:

<fileset file="D:\Test_Reports\test-report-failed.zip" />

可以找到任何使用绝对路径但仅使用相对路径的示例。

这是Email-ext插件关于附件字段的官方帮助:

This is the set of attachments that will be used for the email. The format is a comma separated list of Ant include file syntax. The base directory is the workspace.

【问题讨论】:

  • 然后相对于工作空间引用它们,而不是使用绝对路径。
  • 工作区可以不同并且位于另一个驱动器中。我必须以某种方式使用绝对路径。

标签: ant jenkins absolute-path fileset email-ext


【解决方案1】:

您可以使用<include/> 标签来执行此操作。它看起来像这样。

<fileset dir="D:\Test_Reports">
    <include name="test-report-failed.zip" />
</fileset>

如果你想在属性中获取文件路径,那么你可以这样做(我已经测试过它并且它有效):

<path id="absolute.path.id">
    <fileset dir="D:\Test_Reports">
        <include name="test-report-failed.zip" />
    </fileset>
</path>
<property name="absolute.path" value="${toString:absolute.path.id}" />
<echo>file absolute path: ${absolute.path}</echo>

【讨论】:

  • 我相信我应该只指定包含语法。但我想在include语句中不可能使用绝对路径。
  • 我已经编辑了我的答案。您可以使用&lt;path/&gt; 任务获取绝对路径。
【解决方案2】:

只需在附件字段中指定文件的绝对路径(不是 XML 元素)。

【讨论】:

    【解决方案3】:

    我通过将 Jenkins Job 的工作区更改为测试报告和其他资源所在的目录来解决它。然后我对 zip 文件使用相对寻址,例如:test-report-failed.zip

    【讨论】:

    • 这对其他人没有帮助
    猜你喜欢
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2011-09-17
    • 1970-01-01
    • 2014-03-20
    • 2012-04-24
    相关资源
    最近更新 更多