2015-01-20 4 views
6

को हल करने में असमर्थ मेरे पास जेनकींस में 'ग्रूवी स्क्रिप्ट निष्पादित करें' चरण है। इस चरण में दो फाइलें हैं - एक क्लाइंट फ़ाइल जिसे createWorkspaces.groovy कहा जाता है और वर्कस्पेसबीन.groovy नामक एक बीन फ़ाइल होती है। दोनों नौकरी कार्यक्षेत्र में एक ही स्थान पर रहते हैं।जेनकिंस ग्रोवी क्लासपाथ मुद्दा - कक्षा

पहले जेनकींस 1.554 चल रहा यह मुद्दों के बिना भाग गया, लेकिन 1.594 के उन्नयन के बाद मैं निम्न त्रुटि हो रही है:

/jenkins/workspace/testjob/scripts/groovy/createWorkspaces.groovy: 75: unable to resolve class WorkspaceBean 
@ line 75, column 21. 
     def workspace = new WorkspaceBean() 
        ^

1 error 

मैं नई स्क्रिप्ट अनुमोदन समारोह में स्क्रिप्ट को मंजूरी दे दी है और मैं भी स्थान जोड़ लिया है जॉब चरण में क्लास पथ पैरामीटर के साथ-साथ जेनकींस-कोर.जर फ़ाइल का स्थान।

कोई विचार क्यों यह काम करना बंद कर दिया है?

उत्तर

5

यह groovy प्लगइन में एक बग प्रतीत होता है। प्लगइन कॉन्फ़िगरेशन के भीतर क्लास पथ फ़ील्ड में पथ जोड़ना कक्षा पथ को नहीं बदलता है।

यह काम नहीं करता:

Adding here does not work

एक CLASSPATH चर 'निर्माण प्रक्रिया में सम्मिलित करें वातावरण चर' प्लगइन है काम के माध्यम से जोड़ा जा रहा है।

यह काम करता है: गतिशील रूप से आपकी जार लोड करने के लिए

enter image description here

+0

क्या आपने जेनकींस टीम को बग की सूचना दी है? [यहां बताया गया है] (https://wiki.jenkins-ci.org/display/JENKINS/Issue+Tracking)। – Lernkurve

+0

@JamesE, आपका समाधान –

+2

मदद नहीं करता है यह स्वीकार्य उत्तर कैसे है? वास्तविक क्लासपाथ पेस्ट करें – sloven

1

प्रयास करें। यह पाया गया अंतिम कामकाजी समाधान है। यह नमूना प्रतिलिपि नेटवर्क फ़ोल्डर के लिए स्थानीय मशीन पर है।

def file = new File("jcifs-1.3.18.jar") 
this.class.classLoader.rootLoader.addURL(file.toURI().toURL()) 


def auth_server = Class.forName("jcifs.smb.NtlmPasswordAuthentication").newInstance("domain", "username", "password") 
def auth_local = Class.forName("jcifs.smb.NtlmPasswordAuthentication").newInstance(null, "local_user", "password") 

def source_url = args[0] 
def dest_url = args[1] 
def auth = auth_server 

//prepare source file 
if(!source_url.startsWith("\\\\")) 
{ 
    source_url = "\\\\localhost\\"+ source_url.substring(0, 1) + "\$" + source_url.substring(1, source_url.length()); 
    auth = auth_local 
} 
source_url = "smb:"+source_url.replace("\\","/"); 
def source = Class.forName("jcifs.smb.SmbFile").newInstance(source_url,auth_server) 

//prepare destination file 
if(!dest_url.startsWith("\\\\")) 
{ 
    dest_url = "\\\\localhost\\"+ dest_url.substring(0, 1) + "\$" +dest_url.substring(2, dest_url.length()); 
    auth = auth_local 
} 
dest_url = "smb:"+dest_url.replace("\\","/"); 
def dest = Class.forName("jcifs.smb.SmbFile").newInstance(dest_url,auth_local) 
source.copyTo(dest) 
संबंधित मुद्दे