当前位置: 首页 > 知识库问答 >
问题:

列出Jenkins Pipeline工作区上的文件

宰父玄天
2023-03-14

我试图在Jenkins Pipeline中列出工作区中的文件,这样我就可以使用它来生成适当的并行任务。

虽然我可以简单地使用sh ls

但是,我根本无法获取文件列表。首先,我不得不求助于一些奇怪的东西来简单地找出构建的当前工作目录:

sh 'pwd > workspace'
workspace = readFile('workspace').trim()

现在我调用它来检索文件列表:

@NonCPS
def getFiles(String baseDir) {
    Arrays.asList(new File(baseDir).listFiles())
}

并在asList上获得一个NPE,这意味着,通过我对javadoc的阅读,新文件(baseDir)不存在(或者不是目录)。

我之所以将其标记为@NonCPS,是因为它是管道上groovy闭包所必需的,我更喜欢使用它而不是使用完整的java

共有3个答案

澹台硕
2023-03-14

一种在所有情况下都能工作的解决方案,无需使用JENKINS函数

def  FILES_LIST = sh (script: "ls   '${workers_dir}'", returnStdout: true).trim()
//DEBUG
echo "FILES_LIST : ${FILES_LIST}"
//PARSING
for(String ele : FILES_LIST.split("\\r?\\n")){ 
   println ">>>${ele}<<<"     
}
邓子濯
2023-03-14

下面是我如何在项目中查找json文件以进行处理的示例。

sh "ls *.json > listJsonFiles"
def files = readFile( "listJsonFiles" ).split( "\\r?\\n" );
sh "rm -f listJsonFiles"
  • 使用ls查找文件并将其写入另一个临时文件
  • 读取临时文件并在新行上拆分,得到一个数组
  • 删除临时文件
陶宜民
2023-03-14

对于pwd,您可以使用pwd步骤。

对于主工作区目录中的文件列表,您可以使用findFiles

files = findFiles(glob: '*.*')
 类似资料:
  • 5/14/13 4:01:16.932 PM[0x0-0x51b51b].org.eclipse.eclipse:eclipse.buildid=m20130204-1200 5/14/13 4:01:16.932 PM[0x0-0x51b51b].org.eclipse.eclipse:java.version=1.7.0_17 5/14/13 4:01:16.932 PM[0x0-0x51b5

  • 问题内容: 以下Python 2代码打印当前工作区中所有窗口的列表: 尽管它不会打印全屏显示的应用程序(因为它位于另一个工作区中)。 如何修改上述脚本以列出所有桌面上的所有窗口? 问题答案: 以下脚本应在任何桌面/工作区/显示器,全屏和详细信息(坐标,pid,标题等)上返回窗口信息:

  • 问题内容: 我的工作区中有一个文件夹,但在“ src”之外,其中包含一个文件,使用自定义插件向导时,该文件需要读取才能设置新文件。 除非我确切指定该文件在系统中的位置,否则我无法正确获取此文件的位置并保持获取空指针。我的问题是该文件在插件项目中,但无法获取它的位置。 插件中的文件位置为com.my.plugin / rules / setup.txt 问题答案: 要从已部署的捆绑包中加载资源,您可

  • 工作空间是包含仪表板、图表和数据源的地方。你可以在工作空间中创建多个仪表板、图表和数据源。 自定义工作区 你可以在工作区中查看和排序项目。若要从一个视图更改为另一个视图,请点击窗口底部的 “列表”或 “网格”按钮。或者,选择“查看”->“列表”或“网格”。 列表视图显示有关每个项目的额外信息。你可以在列表视图中对项目进行排序,点击要用来对项目进行排序的列标题。 网格视图以网格显示你的项目为缩略图。

  • 工作空间是包含仪表板、图表和数据源的地方。你可以在工作空间中创建多个仪表板、图表和数据源。 自定义工作区 你可以在工作区中查看和排序项目。若要从一个视图更改为另一个视图,请点击窗口底部的 “列表”或 “网格”按钮。或者,选择“查看”->“列表”或“网格”。 列表视图显示有关每个项目的额外信息。你可以在列表视图中对项目进行排序,点击要用来对项目进行排序的列标题。 网格视图以网格显示你的项目为缩略图。

  • 工作空间是包含仪表板、图表和数据源的地方。你可以在工作空间中创建多个仪表板、图表和数据源。 自定义工作区 你可以在工作区中查看和排序项目。若要从一个视图更改为另一个视图,请点击窗口底部的 “列表”或 “网格”按钮。或者,选择“查看”->“列表”或“网格”。 列表视图显示有关每个项目的额外信息。你可以在列表视图中对项目进行排序,点击要用来对项目进行排序的列标题。 网格视图以网格显示你的项目为缩略图。