如何使用Jenkins中的Pipeline插件调用Jenkinsfile中的java函数

2024-01-12

我在詹金斯中使用管道插件。我的Jenkinsfile has numToEcho =1,2,3,4但我想打电话Test.myNumbers()获取值列表。

  1. 如何在 Jenkinsfile 中调用 myNumbers() java 函数?
  2. 或者我是否需要有一个单独的 groovy 脚本文件,并且该文件应该放置在具有 Test 类的 java jar 中?

我的詹金斯文件:

def numToEcho = [1,2,3,4] 

def stepsForParallel = [:]

for (int i = 0; i < numToEcho.size(); i++) {
def s = numToEcho.get(i)
    def stepName = "echoing ${s}"

    stepsForParallel[stepName] = transformIntoStep(s)
}
parallel stepsForParallel

def transformIntoStep(inputNum) {
    return {
        node {
            echo inputNum
        }
    }
}



import com.sample.pipeline.jenkins
public class Test{

public ArrayList<Integer> myNumbers()    {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(11);
    numbers.add(3);
    return(numbers);
 }
}

您可以将逻辑编写在 Groovy 文件中,您可以将其保存在 Git 存储库中,或者保存在管道共享库 https://jenkins.io/doc/book/pipeline/shared-libraries/,或其他地方。

例如,如果您有文件utils.groovy在你的存储库中:

List<Integer> myNumbers() {
  return [1, 2, 3, 4, 5]
}
return this

In your Jenkinsfile,你可以通过这样使用它load step https://jenkins.io/doc/pipeline/steps/workflow-cps/#code-load-code-evaluate-a-groovy-source-file-into-the-pipeline-script:

def utils
node {
  // Check out repository with utils.groovy
  git 'https://github.com/…/my-repo.git'

  // Load definitions from repo
  utils = load 'utils.groovy'
}

// Execute utility method
def numbers = utils.myNumbers()

// Do stuff with `numbers`…

或者,您可以检查 Java 代码并运行它,然后捕获输出。然后,您可以将其解析为列表,或者稍后在管道中需要的任何数据结构。例如:

node {
  // Check out and build the Java tool  
  git 'https://github.com/…/some-java-tools.git'
  sh './gradlew assemble'

  // Run the compiled Java tool
  def output = sh script: 'java -jar build/output/my-tool.jar', returnStdout: true

  // Do some parsing in Groovy to turn the output into a list
  def numbers = parseOutput(output)

  // Do stuff with `numbers`…
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Jenkins中的Pipeline插件调用Jenkinsfile中的java函数 的相关文章

  • 如何在 MultiJob 插件中传递内部版本号?

    The 多作业插件 https wiki jenkins ci org display JENKINS Multijob Plugin很棒 我想将它用于我的构建过程 但之前有一个问题必须解决 有三个作业 A B 和 C SVN 触发作业 A
  • 使用 Groovy 从 Jenkins 主节点访问从节点上的文件

    我正在使用 Jenkins Build Flow 插件来实现并行化 Groovy DSL 执行某些文件操作 即使该选项Restrict where this project can be run设置为在特定从属设备上运行作业 DSL 在主控
  • 如何使用 jenkins pipeline 共享库定义全局变量或常量?

    虽然我能够定义方法 但使用 Jenkins 共享库定义变量似乎是迄今为止尚未解决的任务 I added vars True groovy有了这个身体 def call return true 现在在 Jenkinsfile 中 我尝试测试它
  • 用于生成多色文本的 jQuery 插件,该文本可在悬停时改变颜色

    我想为各种链接生成多色文本 并从预先指定的颜色数组中为各个字母随机分配颜色 当将鼠标悬停在带有文本的 div 上时 颜色会发生变化 我正在考虑一个 jQuery 插件 脚本将是可行的方法 我想知道是否存在这样的插件或近似插件 Thanks
  • eclipse.ui.menus 的名称过滤器

    我有一个菜单贡献 通过实现org eclipse ui menus扩展点 我想仅为特定文件扩展名 例如 pld 提供此菜单贡献 但我不知道如何使用 visibleWhen 来做到这一点 有任何想法吗 更新 到目前为止我的扩展点
  • WordPress 联系表 7 日期选择器更改日期格式

    我在用着Contact Form 7WordPress 中的插件 我需要一些帮助datepicker关于如何更改我的表单前端的显示日期格式 默认显示mm dd yy我想把它改成dd mm yy但不幸的是我无法使用这段代码 dateForma
  • 如何创建浏览器插件?

    我必须创建一个插件 当用户将鼠标悬停在某些术语上时 该插件必须显示信息 谁能告诉我如何做的方向 我对创建插件没有太多想法 我知道我想要做的事情可以通过java脚本来完成 但是java脚本文件可以作为浏览器插件安装吗 任何对此的想法将不胜感激
  • Jenkins 管道:代理与节点?

    和有什么区别agent and a node在詹金斯管道中 我找到了这些定义 Node https jenkins io doc book pipeline 管道在一个或多个声明的节点步骤的上下文中执行大部分工作 Agent https j
  • 在 Jenkins 内运行构建时,我收到“java/lang/OutOfMemoryError”

    2020 02 25 10 11 24 986 0000 id 79 信息hudson model AsyncPeriodicWork lambda doRun 0 开始maven repo cleanup 2020 02 25 10 11
  • 错误:Jenkins 中“没有这样的模块

    我正在尝试设置JenkinsSlave 构建我的 Swift 项目 该项目使用名为 Freddy 的 Swift pod 问题是构建失败并出现错误 错误 没有这样的模块 Freddy 这是我的 Podfile platform ios 8
  • Jenkins 脚本化管道或声明式管道

    我正在尝试将旧式项目基础工作流程转换为基于 Jenkins 的管道 在经历的同时docs https jenkins io doc book pipeline 我发现有两种不同的语法名为scripted and declarative 比如
  • Jenkins v2.212:创建扩展解析器类时出错:找不到类

    将 Jenkins 升级到 v2 212 并安装许多可用的插件更新后 某些作业开始失败并出现以下错误 12 43 35 WS CLEANUP Deleting project workspace 12 43 35 WS CLEANUP De
  • Hudson/Jenkins Git 构建所有分支

    我们有很多开发人员创建了我想要构建的功能分支 每晚我们都会运行一个需要在每个分支上运行的代码质量工具 我也不喜欢静态配置 因为分支数量每隔几周就会发生变化 在 Git 配置中有一个字段 分支说明符 默认为空白 如果你放在那里 它将构建来自所
  • tmatesoft.svn.core.SVNAuthenticationException:svn:E170001

    我们正在一个遗留项目 maven 中工作来设置devop 詹金斯首发 Jenkins 构建现在没有问题 但是 在将 sonarqube 与 jenkins 集成时 我们收到以下错误 ERROR Error during SonarQube
  • 来自 jenkins api 的节点标签

    有什么方法可以从 jenkins API 中提取节点标签吗 这standard https wiki jenkins ci org display JENKINS Remote access API base url computer no
  • 詹金斯上的登录类型选择有什么区别?

    我之前已经在一些机器上通过 war 文件和作为 Windows 服务安装的网页安装了 jenkins 现在我尝试通过 msi 文件将其安装在另一台计算机上 但我遇到了一个问题 在安装步骤中 有一个步骤询问我 登录类型 这给了我 2 个选择
  • vim 中的 python 2 支持

    我正在尝试设置 YouCompleteMe 一个 vim 代码完成插件 当我运行 vim 时 它给我这个错误消息 YouCompleteMe unavailable 需要 python 2 x 我的 ubuntu 机器上安装了正确版本的 p
  • 如何从詹金斯管道获取所有参数(参数化构建)?

    我正在较新版本的 jenkins 中构建一个参数化管道作业 在较旧版本的 jenkins 中 我使用 getbinding getVariables 来检索所有参数 但较新的版本它返回空值 如何在新版本的詹金斯中检索参数 全部 您可以使用
  • 如何在 Highcharts / Highstock 上显示 x 轴上的十字线选定值和 y 轴上选定的日期?

    我正在研究这个项目 其中包括在交互式图表上显示历史数据 我得出的结论是 Highcharts Highstock 是最好的选择 因为它提供了最多的定制选项 我想要实现的目标是 当我将鼠标悬停在一个点上时 分别在 x 轴和 y 轴上显示所选值
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发

随机推荐

  • 如何从phonegap android插件返回数组或其他集合元素类型

    这是我在 java 插件中测试代码的一部分 我正在使用phonegap 2 7 public boolean execute String action JSONArray args CallbackContext callbackCont
  • Requirejs - 在加载 data-main 之前配置 require

    我们第一次使用 requirejs 我在构建依赖项时遇到了麻烦 我已将主 app js 文件定义为 index html 中的 data main 属性 但是 我有一个文件定义了所有需要的路径 垫片配置 并且我希望它在 app js 文件之
  • 我可以使用 git 的脚本化提交模板吗?

    我们正在处理票证 当我们在第一行的 git 提交消息中使用票证编号时 票证就会使用提交消息进行更新 为了简单起见 我们总是在带有提交号的分支上工作 现在我想看到一条提交消息 其中票号已被填写 这一定是可能的 因为分支已经在提交模板中 但在被
  • 高效的弦修剪

    我有一个String价值 我想要trim https doc rust lang org stable std string struct String html method trim它 我可以做类似的事情 let trimmed s t
  • 计算每列中空值的数量

    我遇到过一个数据库 其表太宽 600 列 即使在没有参数的情况下询问前 100 行也需要 4 秒 我想把这些桌子缩小一点 为了弄清楚哪些列可以最容易地移动到新表或完全删除 我想知道每列中有多少个空值 这应该告诉我哪些信息可能最不重要 我将如
  • 何时将我的项目拆分为多个 C 文件? (大型项目的良好实践)[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我现在正在做一个C语言的大项目 我正在做其中的特定部分 另一个是由其他人完成的 我想知道什么时候应该将我的项目拆分为多个c文件 以及编写的最佳实
  • 使用 XOM 在具有默认命名空间的 xml 上应用 xpath

    我有下面的 XML 其中包含默认名称空间
  • 从字典列表中获取最后更新的字典消息

    我正在尝试从数据流中获取实体的最新更新消息 数据以字典列表的形式出现 其中每个字典都是实体的更新消息 我只需要该实体的最新更新 我的输入是一个字典列表 输出需要是一个字典的字典 注意 仅长度更新 类别保持静态 我知道哪一个是最新更新 因为对
  • 芹菜与亚马逊 SQS

    我想用亚马逊SQS http aws amazon com sqs 作为经纪人支持Celery http celeryproject org SQS 传输实现Kombu https github com ask kombu Celery 依
  • 将 url 和 hash 与 Bootstrap ScrollSpy 一起使用

    我有一个基于 twitter bootstrap 的导航菜单栏 我想应用滚动间谍来突出显示 我使用普通的 php include 将菜单包含到多个页面中 因此我使用文件名加书签链接到文件 例如 products php foo 但滚动间谍希
  • Angular 2—更改组件选择器

    The Angular 2 文档 https angular io docs ts latest guide displaying data html假设要定义这样的组件 使用魔术字符串作为选择器名称 import Component fr
  • 查找另一个字段mongodb的不同值组

    我收集了这样的文件 id ObjectId 5c0685fd6afbd73b80f45338 page id 1234 category list football sport time broadcast 09 13 id ObjectI
  • IOS越狱如何拦截短信/短信

    我目前正在尝试编写一个应用程序来拦截文本消息并根据该消息的内容做出反应 我试图挂钩 receivedMessage struct CKSMSRecord message replace BOOL replaceCKSMSService 类中
  • HTML 标签正在转换

    我有以下代码片段来获取存储在数据库表中的 XML 数据的输出 ServletOutputStream os response getOutputStream String contentDisposition attachment file
  • Android NDK:为什么 ndk-build 不在 Eclipse 中生成 .so 文件和新的 libs 文件夹?

    我按照本教程的步骤进行操作 http mindtherobot com blog 452 android beginners ndk setup step by step http mindtherobot com blog 452 and
  • python:如何绘制以节点为中心的二维不连续数据?

    我有一个二维数据和二维四边形网格 描述了细分为补丁的域 数据在每个网格节点处定义 数据中的不连续性存在于补丁边界处 即数据在同一位置处被多重定义 如何使用 Python 绘制这些数据 并在节点之间进行线性插值并正确表示沿每个面片面的不连续值
  • 将数据库作为 Docker 容器运行还是在裸机服务器上运行?

    数据库被设计为消耗所有可用的内存 CPU 和 IO Docker 不应该用于生产中的数据库是否有好的 坏的原因 可能这个问题也适用于其他工具 例如 MOM Apache Kafka Apache ActiveMQ 等 Docker 不是一个
  • PHP pthread 似乎不是多线程

    如果可能的话请提供帮助 我打算从数据库中提取 X 行 将它们分成 20 个数组的数组 并将它们传递给一个线程以同时处理 为了确保该进程同时工作 我创建了一个快速线程 该线程回显线程号 然后计数到 20 我期望看到类似 1 at 1 然后 2
  • 在浏览器中生成、查看和保存 SVG 客户端

    我正在编写一个 HTML5 JS 的小工具来生成 SVG 图像 我在这样做时遇到了很多问题 虽然我对大多数问题都有解决方法 但至少在一种情况下 我觉得必须有更好的方法 还有一些事情仍然只是aren t在职的 目前 这是我自己使用的 因此跨浏
  • 如何使用Jenkins中的Pipeline插件调用Jenkinsfile中的java函数

    我在詹金斯中使用管道插件 我的Jenkinsfile has numToEcho 1 2 3 4但我想打电话Test myNumbers 获取值列表 如何在 Jenkinsfile 中调用 myNumbers java 函数 或者我是否需要