首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >詹金斯共同失败

詹金斯共同失败
EN

Stack Overflow用户
提问于 2017-12-14 02:25:57
回答 1查看 1.1K关注 0票数 0

我正面临着詹金斯共享图书馆的问题。由于以下错误,它失败了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
an exception which occurred:
    in field org.codehaus.groovy.control.MultipleCompilationErrorsException.collector
    in object org.codehaus.groovy.control.MultipleCompilationErrorsException@545ac2e4
    in field com.cloudbees.groovy.cps.impl.BlockScopeEnv.locals
    in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@633a4023
    in field com.cloudbees.groovy.cps.impl.CallEnv.caller
    in object com.cloudbees.groovy.cps.impl.FunctionCallEnv@4fc67d86
    in field com.cloudbees.groovy.cps.Continuable.e
    in object com.cloudbees.groovy.cps.Continuable@398d975c
    in field org.jenkinsci.plugins.workflow.cps.CpsThread.program
    in object org.jenkinsci.plugins.workflow.cps.CpsThread@45695fe5
    in field org.jenkinsci.plugins.workflow.cps.CpsBodyExecution.thread
    in object org.jenkinsci.plugins.workflow.cps.CpsBodyExecution@584b34fe
    in field org.jenkinsci.plugins.workflow.cps.CpsBodyExecution$SuccessAdapter.this$0
    in object org.jenkinsci.plugins.workflow.cps.CpsBodyExecution$SuccessAdapter@20f23f9f
Caused: java.io.NotSerializableException:org.codehaus.groovy.control.ErrorCollector
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)

Groovy代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.com.*

def call(string project, string repo){
    gt = new git(this, project, repo)
    gt.gitclone('pip','ospatchingpipeline' )
    git(this, project)
}

源类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package org.com.*

/**
 * Created by mishrav on 12/14/2017.
 */
class git implements Serializable {
    def project
    def repo
    git(string project, string repo) {
        this.project = project
        this.repo = repo
    }
    def gitclone(project, repo){
        echo(" cloning ${project}")
        git url: "ssh://git@bitbucket:7999/${project}/${repo}.git"
    }
}

管道代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Library('pipelineLibrary') _
import java.util.regex.Pattern
//def lib = library("pipelineLibrary").com.clsa.scm.git()
//library identifier: 'pipelineLibrary@master', retriever: modernSCM([$class: 'GitSCMSource',remote: 'ssh://git@bitbucket:7999/pip/pipelinelibrary.git',credentialsId: 'my-private-key'])

pipeline {
    agent any
    stages{
        stage ('cleaning workspace'){
            steps{
                script{
                    checkoutScm("ospatchingpipeline")
                    }
                }
            }
        }
}  

我不确定在上传之前是否需要编译这段代码。

EN

回答 1

Stack Overflow用户

发布于 2019-11-25 13:31:54

当您使用未实现可序列化接口的函数(访问要导入的类的对象)时,会发生此错误。

当我们由于下列功能而出现此问题时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@NonCPS
private static boolean isDebugOn (ParamType param1) { ...

删除static并更改它以消除此错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@NonCPS
private boolean isDebugOn (ParamType param1) { ...

似乎是@NonCPSstatic的结合导致了这个错误。

当您有使用不可序列化对象的方法时,@NonCPS注释非常有用。通常,您在管道脚本中创建的所有对象都必须是可序列化的(原因是Jenkins必须能够序列化脚本的状态,以便它可以暂停并存储在磁盘上)。

当您将@NonCPS放在一个方法上时,Jenkins将一次执行整个方法,而不需要暂停。此外,不允许从@NonCPS注释方法中引用任何管道步骤或CPS转换方法。有关这方面的更多信息可以在这里找到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47811025

复制
相关文章
ElementUI获取子组件验证结果
​ 尽管有 prop 和事件,但是有时仍然需要在 JavaScript 中直接访问子组件。为此可以使用 ref 为子组件指定一个引用 ID。ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例。通过这种方式,便可以在父组件中调用子组件方法!
奋飛
2019/08/14
2K0
提交表单时input字段非空验证
需求,当提交表单的时候,如果要验证的字段为空,则弹出提示框提示请完善表单信息,并且 return;不执行下一步。
王小婷
2019/08/07
3K0
当elementui的el-dialog组件中包含子组件时,用refs调用子组件时的undefined问题
今天用elementui写了一个el-dialog组件里面包着一个el-transfer穿梭框组件, 代码
李维亮
2021/07/08
1.5K0
Vue 在父(子)组件引用其子(父)组件方法和属性
<button @click="callChildMethod()">父组件调用子组件方法</button>
授客
2020/06/23
1.9K0
JS阻止表单submit提交(在提交之前做验证及判断)
在工作中遇到表单提交之前,需要验证用户输入的是否为空,之前使用ajax做提交,在js里面直接做判断,如果用户输入为空则弹出提示框(起初默认是隐藏的,非alert弹出框),让用户重新输入,当输入框获取焦点的时候,弹出的提示框隐藏。
浩Coding
2019/07/12
13.7K0
在 Vue 中,父组件中传递数据给子组件
在父组件中传递数据给子组件。在 Vue 中,可以通过 props 属性来实现父组件向子组件传递数据的功能。
王小婷
2023/09/11
3030
在 Vue 中,子组件如何向父组件传递数据?
在子组件中,使用 $emit 方法触发一个自定义事件,并传递要传递给父组件的数据作为参数。
王小婷
2023/09/03
6210
SSH 提交签名验证
HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。 Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。 集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储。 HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。 从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组Datanode上。 Namenode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体Datanode节点的映射。 Datanode负责处理文件系统客户端的读写请求。在Namenode的统一调度下进行数据块的创建、删除和复制。
Cell
2023/10/23
1840
SSH 提交签名验证
vue中在父组件点击按钮触发子组件的事件
1、父组件的button元素绑定click事件,该事件指向notify方法 2、给子组件注册一个ref=“child” 3、父组件的notify的方法在处理时,使用了$refs.child把事件传递给子组件的parentMsg方法,同时携带着父组件中的参数msg 4、子组件接收到父组件的事件后,调用了parentMsg方法,把接收到的msg放到message数组中
江一铭
2022/06/16
6.3K0
在使用Git时你应该这样提交代码
目前大部分公司都在使用 Git 作为版本控制,每个程序员每天都要进行代码的提交。很多开发者也包括我自己,有时候赶时间或者图省事,就这么提交:
码农小胖哥
2021/02/01
1.3K0
vue子组件调用父组件函数_vue子组件修改父组件值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
1.7K0
vue父组件调用子组件属性_vue子组件获取父组件实例
但是在vue3中,很显然使用this.$emit() 已经开始报错了,为什么会报错呢?
全栈程序员站长
2022/11/10
2.1K0
vue 父组件调用子组件_react父组件向子组件传值
1.直接在子组件中通过“this.$parent.event”来调用父组件的方法。
全栈程序员站长
2022/11/15
1.9K0
18:验证子串
18:验证子串 总时间限制: 1000ms 内存限制: 65536kB描述 输入两个字符串,验证其中一个串是否为另一个串的子串。 输入输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。输出若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)  否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)  否则,输出 No substring。样例输入 abc dddncabca 样例输出 abc is
attack
2018/04/03
1.5K0
vue父组件引入子组件_vue子组件传递方法给父组件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
1K0
js表单提交前验证
<script type="text/javascript"> function check(form) {
用户5760343
2019/08/20
12K0
vue 父组件调用子组件的函数_vue子组件触发父组件方法
项目里将element-ui的el-upload写成公共组件方便调用,官方的before-upload方法用于处理上传前要做的事,如:比较文件大小,限制文件类型等,通过返回true 或 false 控制是否上传。 当该组件调用父组件方法,并且要能获取到父组件方法的返回值,如何实现?
全栈程序员站长
2022/11/10
3K0
pbootcms 提交留言取消验证码验证
1.找到app/home/controller/MessageController.php 2.全局搜索验证码,目前最新版本大概在47行 3.将图中画红圈的代码注释或者删除
小唐同学.
2022/02/23
1.6K0
pbootcms 提交留言取消验证码验证
angularjs子组件向父组件传值_react子组件传值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/03
1.9K0
vue 父组件调用子组件的方法_vue子组件修改父组件值
我们都知道通过$ref可以获取到某个DOM,但是它也可以用来获取子组件的实例,调用子组件的方法
全栈程序员站长
2022/11/09
2K0

相似问题

使用Vee验证提交时的子输入组件-验证

65

在表单提交时验证只读组件

10

在提交时将对象从父组件传递到子组件

10

角反应形式提交不触发子组件验证

11

在提交时使用Vee-Validate和vue js 2验证子输入组件

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文