当前位置: 首页 > 面试题库 >

如何访问共享库中的文件?

夏何平
2023-03-14
问题内容

我有一个带有.groovy脚本的共享库,可以在jenkinsfile中这样调用:

MySharedLibFunction{ .. some args}

我要执行的共享库中也有一个.ps1文件。但是,如果powershell pwd当我从jenkinsfile调用共享库函数时从共享库函数中执行该操作,则当前工作目录就是jenkinsfile所在管道的jenkins工作目录(通常是您想要的)。

有没有办法访问共享库中的文件?我想要做powershell -File ps1FileInMySharedLibVarsFolder.ps1


问题答案:

您只能使用内置步骤获得内容libraryResource。这就是为什么在共享库中具有以下功能将其复制到临时目录并返回文件路径的原因:

/**
  * Generates a path to a temporary file location, ending with {@code path} parameter.
  * 
  * @param path path suffix
  * @return path to file inside a temp directory
  */
@NonCPS
String createTempLocation(String path) {
  String tmpDir = pwd tmp: true
  return tmpDir + File.separator + new File(path).getName()
}

/**
  * Returns the path to a temp location of a script from the global library (resources/ subdirectory)
  *
  * @param srcPath path within the resources/ subdirectory of this repo
  * @param destPath destination path (optional)
  * @return path to local file
  */
String copyGlobalLibraryScript(String srcPath, String destPath = null) {
  destPath = destPath ?: createTempLocation(srcPath)
  writeFile file: destPath, text: libraryResource(srcPath)
  echo "copyGlobalLibraryScript: copied ${srcPath} to ${destPath}"
  return destPath
}

当它返回临时文件的路径时,您可以将其传递到需要文件名的任何步骤:

sh(copyGlobalLibraryScript('test.sh'))

用于驻留在resources/test.sh共享库中的文件。



 类似资料:
  • 我有一个网站,在本地主机上运行良好。 在我上传到我的godaddy主机后,我的网站出现了一个bug。结论是,我必须更改php上的内存限制。ini文件,但找不到php。FTP管理器上的ini。 我曾尝试: 找到更改到分类FTP管理器的方法。 创建/上传php.ini文件从本地和不工作。 我的问题是:我如何解决这个问题?我必须换php。ini文件。有人有像我这样的经验吗?

  • 问题内容: 我有一个网站,并且在我的本地主机上运行良好。 在Godaddy托管上上传后,我的网络出现了错误。结论是,我必须更改php.ini文件上的memory_limit,但无法在FTP管理器上找到php.ini。 我试图: 找到更改为“分类FTP”管理器的方法。 从本地创建/上传php.ini文件,但不起作用。 我的问题是:我该如何解决?我必须更改php.ini文件。有人有像我这样的经历吗?

  • 我有两个react项目父项目和公共项目(包含公共组件,如页眉、页脚) 我在父级中定义了素材主题,并使用以标准方式配置了素材主题。 但是,此主题对象在父级中定义的组件中可用,但在共享项目公共中不可用。 欢迎提出建议。 2020年10月30日更多详情添加如下 父组件 共享组件 共享组件样式 父组件将定义为红色,我希望在Header中应用同样的颜色,但它正在选择一个不同的主题(默认)对象,该对象具有蓝色

  • 问题内容: 我正在从python脚本中调用一个so文件。据我了解,我真的不需要释放使用ctypes在python中打开的共享库。但是,在我的so文件代码中,它dlopen另一个so文件并且不执行dlclose()。在这种情况下,从python端使用安全吗?我不必释放在ctypes内部加载的共享库soe文件吗? 问题答案: 始终遵循 “自己清洁后清理 ”的规则(尽管现代技术会为您提供清洁方面的帮助)

  • 我有一台Windows CE 5.0计算机,该计算机具有文件的smb共享。 此文件是由批处理脚本创建的,该脚本将另一个exe的stderr重定向到该文件:。 考虑到在运行时,我无法在Windows CE计算机上使用打开,这一操作非常有效。如果我尝试,NotepadCE将显示一个共享冲突错误。 同一文件可以由其smb共享同时读取,不会出现任何问题。 是否有一种方法可以使Windows CE计算机上的

  • 问题内容: 我有一个依赖于希望在目录结构中找到共享库的程序。我想将共享库移到一个更好的位置。在OS X上,可以使用install_name_tool来完成。我找不到Linux的等效版本。 作为参考,吐出以下解释的输出: (根据要求,:) 我想将“ this / is / terrible / library.so”更改为“ shared / library.so”。请注意,如果程序留在其“构建”位