【发布时间】:2017-12-14 10:25:57
【问题描述】:
我遇到了 Jenkins 共享库的问题。它失败并出现以下错误。
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 Vars 代码
import org.com.*
def call(string project, string repo){
gt = new git(this, project, repo)
gt.gitclone('pip','ospatchingpipeline' )
git(this, project)
}
源类
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"
}
}
管道代码
@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")
}
}
}
}
}
我不确定是否需要在上传之前编译此代码。
【问题讨论】:
-
欢迎来到 Stack Overflow!我已经编辑了你的问题。当你想把东西放在
code markdown中时,你应该缩进 4 个空格。但是,如果您希望内容为普通文本,则不应缩进。总而言之,您的问题似乎包含潜在回答者的相关信息。如果您有更多信息要添加,例如您尝试解决的问题,您可以edit 将其添加到您的问题中。 -
您的源代码在哪些文件和文件夹中?
-
我的类代码在src/main/java/org/com/**/git.groovy下。支持功能在 /vars/scmcheckout.groovy 中的项目根目录下,最后 Jenkins 代码在项目根目录下的 Jenkinsfile 中。
标签: jenkins shared-libraries jenkins-pipeline jenkins-groovy