जेनेलकिंसफाइल सिंटैक्स में इंटेलीज आइडिया का उपयोग करके जावा प्रोजेक्ट पर प्रकाश डाला गया


101

हमने पहले से ही नीचे सूचीबद्ध तरीकों की कोशिश की:

कई दिनों तक कई घंटों तक वेब सर्च करने के बाद भी हमें इस मामले में मददगार संसाधन नहीं मिला। इस प्रकार, यह यहाँ एक नया प्रश्न पूछने के लिए समझ में आता है।

हम IntelliJ विचार में अपने जावा प्रोजेक्ट्स विकसित कर रहे हैं और जेनकींस के साथ अपने बिल्ड को एकीकृत करना चाहते हैं। जब हम आइडिया में जेनकिंसफाइल बनाते हैं, तो हमें सिंटैक्स हाइलाइटिंग या ऑटो पूरा नहीं मिलता है। चूँकि हम जेनकिंस के लिए नए हैं, इसलिए ये सुविधाएँ हमारे लिए वास्तव में उपयोगी होंगी। हम जेनकिंसफाइल्स के साथ आइडिया को अधिक सहायक कैसे बना सकते हैं?

अगर विचार में जेनकिंसफाइल के लिए सिंटैक्स हाइलाइटिंग और ऑटो पूरा करने का कोई तरीका नहीं है, तो अन्य संपादक क्या सहायक होंगे?

कृपया ध्यान दें:

  • हम जावा प्रोजेक्ट्स के साथ काम कर रहे हैं, ग्रूवी प्रोजेक्ट्स नहीं।
  • हमने पहले ही प्लगइन की कोशिश कर ली है https://github.com/oliverlockwood/jenkinsfile-idea-plugin । जब प्लगइन सक्रिय हो जाता है, तो जेनकिंसफाइल को इस तरह से पहचाना जाता है, लेकिन सिंटैक्स हाइलाइटिंग के बजाय हमें एक त्रुटि संदेश मिलता है, कृपया नीचे देखें।

    pipeline {
    agent { docker 'maven:3.3.3' }
    stages {
        stage('build') {
            steps {
                sh 'echo Hello, World!'
            }
        }
      }
    }

    आइडिया त्रुटि के रूप में 'पाइपलाइन' के 'पी' को उजागर करता है। त्रुटि संदेश पढ़ता है:

    JenkinsTokenType.COMMENT, JenkinsTokenType.CRLF या JenkinsTokenType.STEP_KEY अपेक्षित, 'p' मिला

किसी भी मदद के लिए धन्यवाद!


एक कस्टम प्लगइन है: plugins.jetbrains.com/plugin/10127-jenkinsfile-idea-plugin और सुविधा का अनुरोध: youtrack.jetbrains.com/issue/IDEA-158104
y.bedrov

@ y.bedrov आपकी टिप्पणी के लिए धन्यवाद। हमने पहले ही बताए गए प्लगइन की कोशिश की थी, लेकिन केवल एक त्रुटि संदेश मिला, लेकिन कोई सिंटैक्स हाइलाइटिंग या ऑटो पूरा नहीं हुआ। प्लगइन के साथ आपका अनुभव क्या है, क्या यह आपके लिए काम करता है?
रेक्सफ़ोर्ड

1
मुझे नहीं पता कि आपको इस बुनियादी सामान के लिए प्लगइन की आवश्यकता क्यों होगी। बस Groovy (सेटिंग्स> संपादक> फ़ाइल प्रकार> Groovy के लिए एक फ़ाइल प्रकार के रूप में "जेनकिंसफाइल" जोड़ें और "पंजीकृत पैटर्न" के रूप में "जेनकिंसफाइल" जोड़ें)। उस सेटअप के बाद क्या गायब है?
टॉम

1
@ धन्यवाद! दरअसल, आपकी टिप्पणी उस चीज़ के बारे में है जिसकी हम तलाश कर रहे थे। कृपया इस जानकारी को उत्तर के रूप में प्रदान करें, और मैं इसे सही / सबसे उपयोगी उत्तर के रूप में स्वीकार करूंगा।
रेक्सफ़ोर्ड

2
@ क्या गायब है स्वत: पूर्णता और वास्तविक जेनकींस डीएसएल का सत्यापन है
ऑरेंजडॉग

जवाबों:


224

यदि आप चाहते हैं कि IDEA एक Jenkinsfile को Groovy फ़ाइल के रूप में मान्यता दे, तो आप Groovy फ़ाइलों के लिए String "Jenkinsfile" को एक मान्य फ़ाइल नाम पैटर्न के रूप में जोड़ सकते हैं (जिसमें आमतौर पर फ़ाइल समाप्ति होती है)। यह बिना किसी अतिरिक्त प्लगिन ("ग्रूवी" प्लगइन को छोड़कर, "बॉक्स से बाहर" समर्थित है, लेकिन यह पहले से ही आईडिया का हिस्सा है)।

ऐसा करने के लिए सेटिंग्स मेनू पर जाएं, "संपादक" आइटम खोलें और फिर "फ़ाइल प्रकार"। अब ऊपरी सूची में "ग्रूवी" चुनें और "जेनकिंसफाइल" जोड़ें। यदि आप जेनकिंसफाइल के लिए समाप्त होने वाली एक वैकल्पिक फ़ाइल के बारे में अधिक लचीला होना चाहते हैं, तो आप "जेनकिंसफाइल *" जैसे रीगेक्स का भी उपयोग कर सकते हैं।
सेटिंग को अब इस तरह दिखना चाहिए: IDEA फ़ाइल प्रकार सेटिंग्स

आपका उदाहरण अब IDEA में इस तरह दिखता है (ड्रैकुला थीम के साथ): जेनकिंसफाइल सिंटैक्स हाइलाइट

इसलिए आईडिया अब तक सिंटैक्स हाइलाइटिंग और ऑटो पूर्णता प्रदान करता है जहां तक ​​मैं बता सकता हूं। यह लिखते समय मौजूदा फ़ंक्शन / विधि नामों का सुझाव देता है, लेकिन मैं ग्रूवी डेवलपर नहीं हूं, इस प्रकार मैं नहीं बता सकता कि कुछ सुझाव गायब हैं।


6
वे सुविधाएँ जो लोग चाहते हैं कि GDSL के लिए सत्यापन / स्वतः पूर्ण / क्विकडॉक्स और लिंटर का एकीकरण शामिल होगा । एक आदर्श प्लगइन न्यूनतम कॉन्फ़िगरेशन के साथ सब कुछ "बस काम" करेगा (उदाहरण के लिए जेनकींस उदाहरण पर इसे इंगित करें)।
ऑरेंजडॉग

2
बस एक नोट, ग्रूवी फ़ाइल प्रकार केवल InteliJ और Android स्टूडियो में उपलब्ध है, PyCharm 2018.3.2 में नहीं । मुझे लगता है क्योंकि इस प्लगइन की आवश्यकता है plugins.jetbrains.com/plugin/1524-jetgroovy
मिंग

इसके अलावा https: // <Jenkins> / job / <Job Name> / पाइपलाइन-सिंटैक्स / gdsl पर अपने जेनकिंस उदाहरण से gdsl फ़ाइल डाउनलोड करने पर विचार करें और उन्हें अपने प्रोजेक्ट के Groovy classpath में डालें।
स्टीफ़न

1
यह एक अच्छा विचार है, लेकिन इसके लिए एक Groovy SDK को कॉन्फ़िगर करने की आवश्यकता होती है
Owensmartin

1
प्रतिभाशाली! बहुत बहुत धन्यवाद! मैं अपनी Jenkinsfile.declarative फ़ाइलों को एक ही तरीके से पुन: असाइन करने में सक्षम था, ताकि हमें दोनों सिंटैक्स हाइलाइटिंग और कोड पूरा हो सके। हमारे *.declarativeलिए पाठ फ़ाइल प्रकार को सौंपा गया था।
icfantv

8

एक अन्य विकल्प इस तरह से जेनकिंसफाइल के शीर्ष पर एक शबंग का उपयोग करना है #!/usr/bin/env groovy। इसके अलावा आप gdsl आज़मा सकते हैं: https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij लेकिन अब तक यह घोषणात्मक पाइपलाइनों का समर्थन नहीं करता है: https: //issues.jenkins-ci .org / ब्राउज़ / JENKINS-40127


1

नीचे हमने फीडबैक दिया है जो इंटेलीज से मिला है । यदि हम एक कार्यशील समाधान प्रदान करने में सक्षम हैं तो हम इस पर अमल करेंगे।

एंड्री डर्नोव, इंटेलीज, 14 दिसंबर, 07:50 सीईटी

हैलो जॉर्ज, आईडीई में जेनकिंसफाइल्स के संपादन के लिए कोई विशेष संपादक इंटेलीजेंस समर्थन नहीं है। इसके लिए आपको एक कस्टम भाषा प्लगइन लिखना होगा।

या आप कोटलिन डीएसएल लिखने के माध्यम से इस तरह के समर्थन को लागू करने पर विचार कर सकते हैं। शुरुआत करने के लिए कुछ उदाहरण।


1

स्रोत कोड को देखते हुए, ऐसा लगता है कि टिप्पणियाँ परिभाषित नहीं की गई हैं (उन्हें कोड में टिप्पणी दी गई है)

STEP_KEY को इस प्रकार परिभाषित किया गया है: STEP_NAME = "श" | "समांतर"

मुझे यकीन नहीं है कि प्लगइन बहुत अधिक करता है और इसे 2 वर्षों में अपडेट नहीं किया गया है।


-1

अगर आप जोड़ते हैं

#!groovy

अपने jenkinsfile के हेडर तब आपको IDE में ग्रूवी सिंटैक्स हाइलाइटिंग मिलना चाहिए।


Intellij में यह काम नहीं कर रहा है और यह उत्तर सामान्य रूप से बहुत अस्पष्ट है
Tomer Gal

-12

shइस तरह का प्रयोग करें और त्रुटि दूर हो जाए (मेरे लिए काम किया) ...

steps {
    sh """
        echo 'Hello, World!'
    """
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.