2016-08-29 10 views
5

मैं जेनकिन्सफाइल के भीतर ग्रोवी क्लास कैसे आयात करूं? मैंने कई दृष्टिकोणों की कोशिश की है लेकिन कोई भी काम नहीं किया है।मैं एक जेनोकिनफाइल में ग्रोवी क्लास कैसे आयात करूं?

इस वर्ग मैं आयात करना चाहते हैं है:

Thing.groovy

class Thing { 
    void doStuff() { ... } 
} 

ये चीजें हैं जो काम नहीं करते हैं:

Jenkinsfile -1

node { 
    load "./Thing.groovy" 

    def thing = new Thing() 
} 

Jenkinsfile-2

import Thing 

node { 
    def thing = new Thing() 
} 

Jenkinsfile-3

node { 
    evaluate(new File("./Thing.groovy")) 

    def thing = new Thing() 
} 
+0

यह मेरे लिए काम करता है: http://stackoverflow.com/questions/37800195/how-do-you-load-a-groovy-file-and-execute-it –

उत्तर

2

आप लोड आदेश के माध्यम से वर्ग का एक नया उदाहरण लौट सकते हैं और चीज़ का इस्तेमाल "doStuff"

कॉल करने के लिए कर सकते हैं

तो, आपके पास यह "Thing.groovy"

class Thing { 
    def doStuff() { return "HI" } 
} 

return new Thing(); 
में होगा

और आप अपने डीएसएल लिपि में इस होगा:

node { 
    def thing = load 'Thing.groovy' 
    echo thing.doStuff() 
} 

"HI" सांत्वना उत्पादन के लिए मुद्रित करना चाहिए कौन सा।

क्या यह आपकी आवश्यकताओं को पूरा करेगा?

+1

यह काम करता है? मुझे एक FileNotFoundException मिलता है, क्योंकि जेनकिन्स सर्वर पर निर्देशिका में केवल जेनकिन्सफाइल है, लेकिन क्लासफ़ाइल नहीं है जिसे शामिल करने की आवश्यकता है। –

+0

मैं सहमत हूं। यहां सही उत्तर दें: https://stackoverflow.com/questions/43881014/can-i-import-a-groovy-script-from-a-relative-directory-from-a-jenkinsfile – Nauraushaun

+0

यह काम नहीं करता है अगर groovy फ़ाइल आपके जेनकिन्सफाइल के साथ रहता है। जेनकिन्सफाइल में आप मैन्युअल रूप से एक रेपो चेकआउट कर सकते हैं और वहां से .groovy फ़ाइलों को लोड कर सकते हैं। इस मामले में फ़ाइल _is_ मिली, लेकिन निम्नलिखित फेंक दिया गया है: java.io.NotSerializableException: चीज – Nauraushaun

संबंधित मुद्दे