জেনকিনসফাইল সিনট্যাক্সটি ইন্টেলিজ আইডিয়া ব্যবহার করে জাভা প্রকল্পে হাইলাইট করছে


103

আমরা ইতিমধ্যে নীচে তালিকাভুক্ত পদ্ধতির চেষ্টা করেছি:

একাধিক দিনে বেশ কয়েক ঘন্টা ওয়েবে অনুসন্ধান করার পরেও আমরা এখনও এই বিষয়ে সহায়ক সহায়তার সন্ধান পাইনি। সুতরাং, এখানে একটি নতুন প্রশ্ন জিজ্ঞাসা করা বুদ্ধিমান মনে হয়।

আমরা ইন্টেলিজজে আমাদের জাভা প্রকল্পগুলি বিকাশ করছি এবং জেনকিন্সের সাথে আমাদের বিল্ডগুলি সংহত করতে চাই। আমরা যখন আইডিয়ায় জেনকিনসফাইল তৈরি করি, তখন আমরা সিনট্যাক্স হাইলাইটিং বা স্বয়ংক্রিয় সমাপ্তি পাই না। যেহেতু আমরা জেনকিন্সে নতুন, সেই বৈশিষ্ট্যগুলি আমাদের জন্য সত্যই কার্যকর হবে। আমরা কীভাবে জেনকিনসফাইলে আইডিয়াকে আরও সহায়ক হতে পারি?

যদি কোনও জেনকিনসফাইলে বিবেচনার জন্য সিনট্যাক্স হাইলাইটিং এবং অটো সমাপ্তির কোনও উপায় না থাকে, তবে অন্যান্য সম্পাদকগুলি কী সহায়ক হবে?

দয়া করে নোট করুন:

  • আমরা জাভা প্রকল্পগুলির সাথে কাজ করছি, গ্রোভি প্রকল্পগুলি নয়।
  • আমরা ইতিমধ্যে https://github.com/oliverlockwood/jenkinsfile-idea-plugin প্লাগইনটি চেষ্টা করেছি । প্লাগইনটি সক্রিয় হয়ে গেলে, জেনকিনসফাইলে এমনটি স্বীকৃত হয় তবে সিনট্যাক্স হাইলাইট করার পরিবর্তে আমরা একটি ত্রুটি বার্তা পাই, দয়া করে নীচে দেখুন।

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

    আইডিয়া ত্রুটি হিসাবে 'পাইপলাইন' এর 'পি' হাইলাইট করে। ত্রুটি বার্তাটি পড়ে:

    জেনকিনস টোকেনটাইপ.কমেন্ট, জেনকিনস টোকেনটাইপ.সিআরএলএফ বা জেনকিনসটোকেনটাইপ.এসটিপি_কি আশা করেছে, 'পি' পেয়েছে

কোন সাহায্যের জন্য ধন্যবাদ!


একটি কাস্টম প্লাগইন রয়েছে: প্লাগইনস.জেটব্রেইনস / প্লাগইন ১০০১২7- জেনকিনসফাইলে-idea- plugin এবং বৈশিষ্ট্য অনুরোধ: youtrack.jetbrains.com/issue/IDEA-158104
y.bedrov 13:37

@ y.bedrov আপনার মন্তব্যের জন্য ধন্যবাদ। আমরা ইতিমধ্যে উল্লিখিত প্লাগইন চেষ্টা করেছি, তবে কেবল একটি ত্রুটি বার্তা পেয়েছি, তবে কোনও সিনট্যাক্স হাইলাইটিং বা স্বয়ংক্রিয় সমাপ্তি নেই। প্লাগইনটি নিয়ে আপনার অভিজ্ঞতা কী, এটি কি আপনার জন্য কাজ করে?
রেক্সফোর্ড

4
এই প্রাথমিক জিনিসগুলির জন্য আপনার কেন প্লাগইন লাগবে তা আমার কোনও ধারণা নেই। গ্রোভির জন্য ফাইল টাইপ হিসাবে কেবল "জেনকিনসফিল" যুক্ত করুন (সেটিংস> সম্পাদক> ফাইলের ধরন> গ্রোভির এবং "জেনকিনসফিল" কে "নিবন্ধিত প্যাটার্ন" হিসাবে যুক্ত করুন)। এই সেটআপের পরে কি অনুপস্থিত?
টম

4
@ টম ধন্যবাদ! আসলে, আপনার মন্তব্যটি আমরা যা খুঁজছিলাম সে সম্পর্কে। দয়া করে উত্তর হিসাবে এই তথ্য সরবরাহ করুন, এবং আমি এটিকে সঠিক / সবচেয়ে সহায়ক উত্তর হিসাবে গ্রহণ করব।
রেক্সফোর্ড

4
@ টম যা অনুপস্থিত তা হ'ল আসল জেনকিন্স ডিএসএল
অরেঞ্জডোগ

উত্তর:


232

আপনি যদি আইডিইএ কোনও জেনকিনসফিলকে গ্রোভী ফাইল হিসাবে স্বীকৃতি দিতে চান তবে আপনি গ্রোভি ফাইলগুলির জন্য একটি স্ট্রিং "জেনকিনসফাইলে" একটি বৈধ ফাইলের নাম প্যাটার্ন হিসাবে (সাধারণত ফাইলের শেষগুলি ধারণ করে) যুক্ত করতে পারেন। এটি কোনও অতিরিক্ত প্লাগিন প্রয়োজন ছাড়াই "বাক্সের বাইরে" সমর্থিত ("গ্রোভি" প্লাগইন বাদে তবে এটি ইতিমধ্যে আইডিইএর অংশ)।

সেটিংস মেনুতে যেতে, "সম্পাদক" আইটেমটি খুলুন এবং তারপরে "ফাইলের প্রকারগুলি"। এখন উপরের তালিকায় "গ্রোভি" নির্বাচন করুন এবং "জেনকিনসফাইল" যুক্ত করুন। আপনি জেনকিনসফাইলে শেষ হওয়া optionচ্ছিক ফাইল সম্পর্কিত আরও নমনীয় হতে চাইলে আপনি "জেনকিনসফাইল *" এর মতো একটি রেজিওক্সও ব্যবহার করতে পারেন।
সেটিংটি এখন দেখতে এইরকম হওয়া উচিত: আইডিইএ ফাইল টাইপ সেটিংস

আপনার উদাহরণটি এখন আইডিইএতে (ড্রাকুলা থিম সহ) এর মতো দেখাচ্ছে: জেনকিনসফাইল সিনট্যাক্স হাইলাইট

সুতরাং IDEA এখন সিনট্যাক্স হাইলাইটিং এবং অটো সমাপ্তি যতদূর আমি বলতে পারি সরবরাহ করে। এটি লেখার সময় বিদ্যমান ফাংশন / পদ্ধতির নামগুলির পরামর্শ দেয় তবে আমি গ্রোভী বিকাশকারী নই, সুতরাং কিছু পরামর্শ অনুপস্থিত আছে কিনা তা আমি বলতে পারি না।


6
বৈশিষ্ট্য লোকেদের অন্তর্ভুক্ত বৈধতা / স্বয়ংক্রিয়ভাবে / জন্য quickdocs চাইবেন GDSL এবং একীকরণ Linter । একটি আদর্শ প্লাগইন সর্বনিম্ন কনফিগারেশন সহ সমস্ত কিছু "কেবলমাত্র কাজ" করে তোলে (উদাহরণস্বরূপ এটি একটি জেনকিন্সের উদাহরণে নির্দেশ করুন)।
অরেঞ্জডগ

4
শুধু একটি নোট, খাঁজকাটা ফাইল প্রকার, InteliJ এবং অ্যান্ড্রয়েড স্টুডিওতে কেবল প্রাপ্তিসাধ্য না PyCharm 2018.3.2 হবে। আমি মনে করি কারণ এই প্লাগইনটির জন্য প্রয়োজনীয় প্লাগইনস.জেটব্রিনস
মিং

আপনার জেনকিন্স উদাহরণ থেকে জিডিএসএল ফাইলটি https: // <জেনকিনস / জব / <জব নেম> / পাইপলাইন-সিনট্যাক্স / জিডিএসএল এ ডাউনলোড করার কথা বিবেচনা করুন এবং এগুলি আপনার প্রকল্পের গ্রোভী শ্রেণিবদ্ধে রাখুন।
স্টিফান

4
এটি একটি দুর্দান্ত ধারণা তবে একটি গ্রোভি এসডিকে কনফিগার করা দরকার
owensmartin

4
উজ্জ্বল! এত বেশি! আমি আমাদের জেনকিনসফিল.ডেক্লারেটিভ ফাইলগুলিকে একই পদ্ধতিতে পুনরায় সাইন করতে সক্ষম হয়েছি যাতে আমরা সিনট্যাক্স হাইলাইটিং এবং কোড সমাপ্তি উভয়ই পাই। আমাদের জন্য *.declarativeটেক্সট ফাইল টাইপ বরাদ্দ করা হয়েছিল।
icfantv

9

অন্য বিকল্পটি হ'ল জেনকিনসফাইলে শীর্ষে একটি শাবং ব্যবহার করা #!/usr/bin/env groovy। এছাড়াও আপনি জিডিএসএল চেষ্টা করতে পারেন: https://st-g.de/2016/08/jenkins-pipline-autocompletion-in-intellij তবে এখনও পর্যন্ত এটি ঘোষিত পাইপলাইন সমর্থন করে না: https: //issues.jenkins-ci .org / ব্রাউজ / জেনকিনস -40127


1

উত্স কোডটি দেখে, দেখে মনে হচ্ছে কমেন্টগুলি সংজ্ঞায়িত করা হয়নি (তাদের কোডে মন্তব্য করা হয়েছে)

STEP_KEY হিসাবে সংজ্ঞায়িত করা হয়েছে: STEP_NAME = "sh" | "সমান্তরাল"

আমি নিশ্চিত না যে প্লাগিনটি আরও অনেক কিছু করে এবং এটি 2 বছরে আপডেট হয় নি।


1

শেষ পর্যন্ত আমরা এমন একটি সমাধান পেয়েছি যা আমাদের জন্য কাজ করে এবং আইডিয়ায় অন্য কোনও সাধারণ জাভা প্রকল্পে উপস্থিত জেনকিনসফিলের জন্য সিনট্যাক্স হাইলাইটিং এবং কোড সমাপ্তি সরবরাহ করে। সমাধানটি এখান থেকে নেওয়া হয়েছে , এখানে (এবং অতিরিক্ত ব্যক্তিগত পরীক্ষা-নিরীক্ষা / গবেষণা থেকে)

  1. গ্রোভি পৃষ্ঠা থেকে গ্রোভি এসডিকে (যদি আপনি ইতিমধ্যে এটি না করেন) ডাউনলোড করুন এবং এটি আপনার জাভা প্রকল্পে কনফিগার করুন। এখানে সাহায্যের জন্য দেখুন

  2. আপনার জেনকিন্স উদাহরণ থেকে পাইপলাইন জিডিএসএল ফাইলটি ডাউনলোড করুন যা https: //yourJenkinsInstance.tld/pipline-syntax/gdsl এর মতো লিঙ্কের অধীনে উপলভ্য হওয়া উচিত এবং এটি আপনার জাভা প্রকল্পের ক্লাসপথে যুক্ত করুন। যেমন একটি নতুন ফোল্ডার src / main / jenkins তৈরি করে সেখানে পাইপলাইন জিডিএসএল ফাইল স্থাপন করে এবং ফোল্ডারটি ইন্টেলিজ আইডিয়ায় উত্সরূপ হিসাবে চিহ্নিত করে

  3. এখানে বর্ণিত গ্রোভী ফাইলগুলির জন্য একটি বৈধ ফাইল নাম প্যাটার্ন হিসাবে "জেনকিনসফাইল" যুক্ত করুন

  4. ত্রুটি বার্তা এড়ানোর জন্য 'node' cannot be applied to '(groovy.lang.Closure<java.lang.Object>), আপনি আপনার জেনকিনসফাইলে শীর্ষে এই লাইনটি যুক্ত করতে পারেন:

    // ননস্পেকশন গ্রোভিঅ্যাসাইনিবিলিটি চেক


0

যোগ করলে

#!groovy​

আপনার জেনকিনসফাইলে শিরোনাম তখন আইডিইতে আপনার গ্রোভি সিনট্যাক্স হাইলাইট করা উচিত।


ইন্টেলিজে এটি কাজ করছে না এবং এই উত্তরটি খুব সাধারণভাবে অস্পষ্ট
টোমর গাল

-14

এর shমতো ব্যবহার করুন এবং ত্রুটিটি চলে যেতে হবে (আমার জন্য কাজ করেছে) ...

steps {
    sh """
        echo 'Hello, World!'
    """
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.