सामग्री पर जाएँ
cd /languages
  • JVM स्क्रिप्टिंग
  • प्रोग्रामिंग
  • AST और सिंबल सपोर्ट

Maguyva में Groovy: Gradle और Jenkins कोड के लिए कोड ग्राफ़

Maguyva, Groovy को AST, सिंबल और ग्राफ़ के साथ सपोर्ट करता है, ताकि AI एजेंट Groovy ऐप, Gradle बिल्ड और Jenkinsfile में क्लास, क्लोज़र और कॉल को ट्रेस कर सकें।

Groovy सतही AI टूल को कहाँ उलझाती है

Groovy अक्सर कॉन्फ़िगरेशन जैसी पढ़ी जाती है। Gradle बिल्ड में dependencies { implementation ... } क्लोज़र के साथ मेथड कॉल की एक श्रृंखला है, और डिक्लेरेटिव Jenkinsfile भी ऐसी ही होती है। बिल्डर मनमाने नामों को कॉल में बदल देते हैं, और GDK हर ऑब्जेक्ट में each और collect जैसे मेथड जोड़ता है। हर कॉल दर्ज करने वाला टूल इस शोर में डूब जाता है।

Maguyva DSL और GDK लेयर को फ़िल्टर करता है, ताकि आपके अपने मेथड और क्लास साफ़ दिखें।

Maguyva, Groovy से क्या निकालता है

Maguyva .groovy और .gradle फ़ाइलों और Jenkinsfile को कवर करता है। क्लास, फ़ंक्शन और मेथड निकाले जाते हैं, और इम्पोर्ट import static तथा as एलियस को सामान्यीकृत करते हैं। कॉल के नामों से अंत के क्लोज़र ब्लॉक और ?. सेफ़-नेविगेशन ऑपरेटर हटा दिए जाते हैं, इसलिए repo?.save(order) { ... } को save के कॉल के रूप में दर्ज किया जाता है। किसी क्लास के भीतर बिना रिसीवर वाला कॉल उसी क्लास के अपने मेथड पर रिज़ॉल्व होता है।

शोर परतों में फ़िल्टर किया जाता है:

  • dependencies, implementation, task, given, when, then और Mock जैसे लगभग 140 स्टैंडर्ड लाइब्रेरी, Gradle और Spock नाम।
  • each, collect, inject और eachLine जैसे लगभग 260 GDK मेथड।
  • बिल्डर DSL के नाम, जिनमें pipeline, stage, steps और sh जैसे Jenkins स्टेप शामिल हैं, जब वे कोष्ठक के साथ कॉल करने की बजाय बिल्डर शैली में इस्तेमाल हों।
  • @CompileStatic, @Immutable और @Autowired जैसे AST-ट्रांसफ़ॉर्म और फ़्रेमवर्क एनोटेशन, जो कभी कॉल के रूप में दर्ज नहीं होते।

ग्राफ़ इनहेरिटेंस, इंस्टैंशिएशन, और रीड तथा राइट भी दर्ज करता है।

एजेंट प्रॉम्प्ट के उदाहरण

  • “deployToStaging को कौन कॉल करता है, और किन पाइपलाइन से?” (find_symbol, फिर dependency_search इनकमिंग)
  • “कौन-सी क्लास BaseIntegrationSpec से इनहेरिट करती हैं?” (dependency_search)
  • “समझाओ कि रिलीज़ टास्क आर्टिफ़ैक्ट कैसे बिल्ड और पब्लिश करता है।” (get_task_context)

ज्ञात सीमाएँ

  • Groovy मेथड और फ़्री फ़ंक्शन एक ही सिंटैक्स नोड साझा करते हैं, इसलिए structural_search में methods प्रीसेट कुछ भी नहीं चुनता। इसकी जगह functions प्रीसेट या find_symbol इस्तेमाल करें।
  • आपका कोई मेथड जिसका नाम किसी GDK या DSL मेथड से मेल खाता है, जैसे collect या stage, उनके साथ फ़िल्टर हो सकता है। अगर कोई कॉलर गायब लगे, तो text_pattern_search इस्तेमाल करें।

अगले कदम

क्विकस्टार्ट से रिपॉज़िटरी जोड़ें, फिर सपोर्ट मैट्रिक्स कम्पैटिबिलिटी पेज पर देखें। आपके बिल्ड जिस JVM कोड को कंपाइल करते हैं, उसके लिए Java गाइड और Kotlin गाइड पढ़ें।

सबसे उपयुक्त

  • > Groovy में लिखे Gradle बिल्ड, जिनका साझा बिल्ड लॉजिक कई `.gradle` फ़ाइलों में बिखरा है।
  • > Jenkins पाइपलाइन और साझा लाइब्रेरी, जिन्हें CI बदलने से पहले एजेंट को पढ़ना होता है।
  • > JVM पर चलने वाले Groovy ऐप्लिकेशन और Spock टेस्ट सूट।

एजेंट वर्कफ़्लो

  • > किसी साझा लाइब्रेरी स्टेप के आर्ग्युमेंट बदलने से पहले उसके सभी कॉलर ढूँढना।
  • > ट्रेस करना कि कौन-सी बिल्ड स्क्रिप्ट किसी साझा `.gradle` फ़ाइल में घोषित हेल्पर को कॉल करती हैं।
  • > रीफ़ैक्टर से पहले यह मैप करना कि कौन-सी क्लास किसी बेस क्लास से इनहेरिट करती हैं।

इंजन विवरण

  • > Groovy सपोर्ट `.groovy`, `.gradle` और `Jenkinsfile` फ़ाइलों को कवर करता है। कॉल के नामों से क्लोज़र ब्लॉक और `?.` सेफ़ नेविगेशन हटा दिए जाते हैं।
  • > लगभग 140 स्टैंडर्ड लाइब्रेरी, Gradle और Spock नाम और लगभग 260 GDK मेथड संबंधों से फ़िल्टर किए जाते हैं।
  • > बिल्डर DSL नाम, जिनमें `stage` और `sh` जैसे Jenkins स्टेप शामिल हैं, बिल्डर शैली में इस्तेमाल होने पर फ़िल्टर किए जाते हैं; एनोटेशन कभी कॉल के रूप में दर्ज नहीं होते।

उपयोगी MCP एंट्री पॉइंट

  • find_symbol

    किसी साझा लाइब्रेरी स्टेप, बिल्ड हेल्पर या क्लास के लिए इस्तेमाल करें जब आपको परिभाषा और कॉलर चाहिए।

  • dependency_search

    यह देखने के लिए इनकमिंग ट्रैवर्सल इस्तेमाल करें कि कौन-सी स्क्रिप्ट और पाइपलाइन किसी बिल्ड हेल्पर को कॉल करती हैं।

  • text_pattern_search

    ग्राफ़ से फ़िल्टर किए गए DSL कॉल और GDK मेथड के लिए इस्तेमाल करें।

संबंधित गाइड

रिपॉज़िटरी के संबंधित हिस्से

सभी गाइड ब्राउज़ करें