Lumaktaw papunta sa content
cd /languages
  • Scripting sa JVM
  • Programming
  • Support para sa AST at mga simbolo

Groovy sa Maguyva: mga code graph para sa Gradle at Jenkins

Sinusuportahan ng Maguyva ang Groovy gamit ang AST, mga symbol at graph, para ma-trace ng mga AI agent ang mga class, closure at call sa mga Groovy app, Gradle build at Jenkinsfile.

Saan nalilito ang mababaw na AI tool sa Groovy

Madalas mukhang configuration ang Groovy. Sa isang Gradle build, sunod-sunod na method call na may closure ang dependencies { implementation ... }, at ganoon din ang declarative Jenkinsfile. Ginagawang call ng mga builder ang kahit anong pangalan, at nagdadagdag ang GDK ng mga method tulad ng each at collect sa bawat object. Malulunod sa ingay ang tool na nagtatala ng bawat call.

Nifi-filter ng Maguyva ang DSL at GDK layer, para lumitaw ang sarili mong mga method at class.

Ano ang kinukuha ng Maguyva mula sa Groovy

Sakop ng Maguyva ang mga .groovy at .gradle file at ang Jenkinsfile. Kinukuha ang mga class, function at method, at nino-normalize ng mga import ang mga import static at as alias. Tinatanggal sa mga pangalan ng call ang trailing closure block at ang ?. safe-navigation operator, kaya naitatala ang repo?.save(order) { ... } bilang call sa save. Nireresolba sa sariling method ng class ang call na walang receiver sa loob ng class na iyon.

Nifi-filter ang ingay nang patong-patong:

  • Mga 140 pangalan mula sa standard library, Gradle at Spock, tulad ng dependencies, implementation, task, given, when, then at Mock.
  • Mga 260 GDK method, tulad ng each, collect, inject at eachLine.
  • Mga pangalan sa builder DSL, kasama ang mga Jenkins step tulad ng pipeline, stage, steps at sh, kapag ginamit nang builder-style at hindi tinawag nang may panaklong.
  • Mga AST-transform at framework annotation tulad ng @CompileStatic, @Immutable at @Autowired, na hindi kailanman itinatalang call.

Itinatala rin ng graph ang inheritance, instantiation, at mga read at write.

Mga halimbawang agent prompt

  • “Sino ang tumatawag sa deployToStaging, at mula sa aling mga pipeline?” (find_symbol, tapos dependency_search na incoming)
  • “Aling mga class ang nagmamana mula sa BaseIntegrationSpec?” (dependency_search)
  • “Ipaliwanag kung paano bina-build at pina-publish ng release task ang mga artifact.” (get_task_context)

Mga kilalang limitasyon

  • Iisang syntax node ang ginagamit ng mga Groovy method at free function, kaya walang napipili ang methods preset sa structural_search. Gamitin na lang ang functions preset o ang find_symbol.
  • Puwedeng ma-filter din ang sarili mong method na kapangalan ng isang GDK o DSL method, gaya ng collect o stage. Kung parang may kulang na caller, gamitin ang text_pattern_search.

Mga susunod na hakbang

Mag-connect ng repository gamit ang quickstart, tapos tingnan ang support matrix sa compatibility page. Para sa JVM code na kino-compile ng iyong mga build, basahin ang gabay sa Java at ang gabay sa Kotlin.

Pinakabagay

  • > Mga Gradle build na nakasulat sa Groovy, na may shared build logic na nakakalat sa maraming `.gradle` file.
  • > Mga Jenkins pipeline at shared library na kailangang basahin ng agent bago baguhin ang CI.
  • > Mga Groovy application sa JVM at mga Spock test suite.

Mga workflow ng agent

  • > Hanapin ang lahat ng tumatawag sa isang shared-library step bago baguhin ang mga argument nito.
  • > I-trace kung aling mga build script ang tumatawag sa helper na nakadeklara sa isang shared `.gradle` file.
  • > I-map kung aling mga class ang nagmamana mula sa isang base class bago mag-refactor.

Mga detalye ng engine

  • > Sakop ng suporta sa Groovy ang mga `.groovy`, `.gradle` at `Jenkinsfile` file. Tinatanggal sa mga pangalan ng call ang mga closure block at ang `?.` safe navigation.
  • > Mga 140 pangalan mula sa standard library, Gradle at Spock at mga 260 GDK method ang nifi-filter mula sa mga relationship.
  • > Nifi-filter ang mga pangalan sa builder DSL, kasama ang mga Jenkins step tulad ng `stage` at `sh`, kapag ginamit nang builder-style; hindi kailanman itinatalang call ang mga annotation.

Mga kapaki-pakinabang na MCP entry point

  • find_symbol

    Gamitin para sa isang shared-library step, build helper o class kapag kailangan mo ang definition at mga caller.

  • dependency_search

    Gumamit ng incoming traversal para makita kung aling mga script at pipeline ang tumatawag sa isang build helper.

  • text_pattern_search

    Gamitin para sa mga DSL call at GDK method na nifi-filter mula sa graph.