【问题标题】:jenkins archive artifact excluding all subdirectory詹金斯存档工件不包括所有子目录
【发布时间】:2013-02-21 13:43:03
【问题描述】:

我在 Jenkins 有几份工作,将源代码树中的工件存档用于另一份工作(一些单元测试或类似工作)。我有现在的情况:

top_dir
  \scripts_dir
      \some_files
      \dir1
      \dir2
      \dir3
  \other_dir

我想存档 "top_dir" 中的所有内容,包括 "scripts_dir" 中的 files,但不存档子目录 "dir1, dir2,...",我不知道名称,位于“scripts_dir”中。这些子目录实际上是指向磁盘上其他位置的 Windows 目录连接,我不希望它们被复制。

如何使用 Jenkins 的包含/排除模式来实现这一点?

我已经试过了,有 include=top_dir/ , exclude=

**/scripts_dir/*/
**/scripts_dir/*/**
**/scripts_dir/**/*

但它总是排除整个“scripts_dir”文件夹。

【问题讨论】:

    标签: jenkins archive artifact fileset


    【解决方案1】:

    最后,通过蛮力,我发现以下表达式确实排除了 scripts_dir 子目录中的所有文件(无论符号链接与否),然后删除这些子目录,同时将文件直接保留在 scripts_dir 中:

    **/scripts_dir/**/*/*/
    

    无论如何感谢您的帮助。

    【讨论】:

      【解决方案2】:

      读取ANT manual,有一个followsymlinks 属性默认为true。您说您要排除的那些东西是符号链接(尽管我不确定这是否适用于 Windows 关节)。尝试添加followsymlinks=false

      另一种解决方案:如果scripts_dir 下的所有文件在扩展名中都有一定数量的字符,则可以将其放入包含语句中。这只会拾取扩展名为 3 个字符的文件:
      **/scripts_dir/*.???
      更多关于这个here

      【讨论】:

      • 不幸的是,我只使用 Jenkins 的 Web 界面。因此,入侵 config.xml 不是一种选择。或者,scripts_dir 中的文件具有不同的扩展大小...
      • 但是它们都有扩展名?因此,您可以为**/scripts_dir/*.?, **/scripts_dir/*.??, **/scripts_dir/*.???, **/scripts_dir/*.???? 包含多个匹配项。这将处理最多 4 个字符的扩展名
      猜你喜欢
      • 1970-01-01
      • 2018-08-02
      • 2019-12-19
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多