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

如何使用管道代码在从属节点上执行大量groovy命令

孙玺
2023-03-14

我正在尝试将自由风格的作业转换为管道代码。我有大量以下groovy命令需要在从属节点上运行。

**stage ('Execute Groovy')**
def project = new XmlParser().parse( "target/checkout/pom.xml" )
def artifactID = project.artifactId.text()
def projectVersion = project.version.text()
def tag = "$artifactID-$projectVersion"
new File('release_info').text = "RELEASE_TAG=$tag\nRELEASE_VERSION=$projectVersion"

错误:

"java.io.FileNotFoundException: /target/checkout/pom.xml(没有这样的文件或目录)java.io.FileInputStream.open0(本机方法)"

我从输出中看到,groovy正在master上执行(我知道这是groovy的本质),无法弄清楚文件路径和抛出错误。

如何使用管道在从属节点上执行groovy命令

谁能帮我一下吗。

共有1个答案

吴浩皛
2023-03-14

您可以尝试使用管道实用程序步骤中的readMavenPom步骤(https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/#code-readmavenpom-code-read-a-maven-project-file)。

 类似资料:
  • 问题内容: 我有一个在Jenkins主服务器上运行过的Jenkins声明式管道,并且运行良好。但是,既然我已经尝试在从属节点上执行此操作,则在管道中调用的常规脚本无法访问工作空间中的文件。 我的jenkinsfile看起来像这样… 我可以在从站上看到它正在创建工作区,从git进行检出并正确执行脚本。但是,如果脚本中的某些内容尝试与工作空间中的文件进行交互,它将失败。 如果我有这样简单的事情… …它

  • 我有一个Jenkins声明性管道,我一直在Jenkins master上运行,它工作得很好。但是,现在我已经开始尝试在从属节点上执行此操作,管道中调用的groovy脚本无法访问工作区中的文件。 我的文件看起来像这样。。。 我可以在从机上看到它正在创建工作区,从git执行签出,并正确执行脚本。但是,如果脚本中的某些内容尝试与工作区中的文件交互,则会失败。 如果我有像这样简单的东西... ...它说找

  • 我试图在windows上运行的jenkins slave上使用groovy执行cmd/c echo hello。 这是我的groovy: 我可以在作业日志中看到它确实在Windows从站上运行:“在WINDOWS-SLAVE-1上运行” 但我得到一个错误:<代码>java。io。IOException:错误=2,没有这样的文件或目录 如果我尝试像这样运行linux,它可以正常工作。给我看我主人的文

  • 问题内容: 我想直接在命令行执行单个php语句,而不必使用单独的php文件。 这怎么可能 ? 问题答案: 如果您要在命令行中使用PHP,建议您安装 phpsh,这是一个不错的PHP shell。这很有趣。 无论如何,php命令提供了 两个开关来从命令行执行代码 : 您可以这样使用php的 -r开关 : 上面的PHP命令应该 输出 并 返回, 如您所见: 另一个有趣的开关是 php -a : 与 p

  • 问题内容: 我想知道是否有一种方法可以在Go中运行一定的时间,然后在从通道接收到值后将其杀死。在似乎不支持命令管道。谢谢。 问题答案: 这是我的管道示例,通过OS Std Pipe归档一个调用文件b,您可以对其进行编辑并添加计时器以执行所需的操作。 文件b:

  • 问题内容: 我想搭配使用。我尝试了各种解决方案,但到目前为止没有任何效果。有人可以指导我怎么做吗? 问题答案: 要将管道与模块一起使用,必须通过。 但是,出于各种原因,这并不是真正可取的选择,其中最重要的是安全性。相反,请分别创建和流程,然后将输出从一个管道输送到另一个管道,如下所示: 但是,在您的特定情况下,简单的解决方案是先调用然后在输出上。