Langkau ke kandungan
cd /languages
  • Skrip JVM
  • Pengaturcaraan
  • Sokongan AST dan simbol

Groovy dalam Maguyva: graf kod untuk Gradle dan Jenkins

Maguyva menyokong Groovy dengan AST, simbol dan graf, supaya ejen AI boleh menjejak kelas, closure dan panggilan dalam aplikasi Groovy, binaan Gradle dan Jenkinsfile.

Di mana Groovy memerangkap alat AI yang cetek

Groovy sering dibaca seperti konfigurasi. Dalam binaan Gradle, dependencies { implementation ... } ialah rantaian panggilan kaedah dengan closure, begitu juga Jenkinsfile deklaratif. Builder menukar nama sewenang-wenangnya kepada panggilan, dan GDK menambah kaedah seperti each dan collect pada setiap objek. Alat yang merekodkan setiap panggilan akan tenggelam dalam hingar ini.

Maguyva menapis lapisan DSL dan GDK, supaya kaedah dan kelas anda sendiri menonjol.

Apa yang diekstrak oleh Maguyva daripada Groovy

Maguyva merangkumi fail .groovy dan .gradle serta Jenkinsfile. Kelas, fungsi dan kaedah diekstrak, dan import menormalkan alias import static dan as. Blok closure di hujung dan operator navigasi selamat ?. dibuang daripada nama panggilan, jadi repo?.save(order) { ... } direkodkan sebagai panggilan kepada save. Panggilan tanpa penerima di dalam kelas diselesaikan kepada kaedah kelas itu sendiri.

Hingar ditapis secara berlapis:

  • Kira-kira 140 nama pustaka standard, Gradle dan Spock, seperti dependencies, implementation, task, given, when, then dan Mock.
  • Kira-kira 260 kaedah GDK, seperti each, collect, inject dan eachLine.
  • Nama DSL builder, termasuk langkah Jenkins seperti pipeline, stage, steps dan sh, apabila digunakan gaya builder dan bukan dipanggil dengan kurungan.
  • Anotasi transformasi AST dan rangka kerja seperti @CompileStatic, @Immutable dan @Autowired, yang tidak pernah direkodkan sebagai panggilan.

Graf juga merekodkan pewarisan, instansiasi, serta bacaan dan tulisan.

Contoh gesaan ejen

  • “Siapa yang memanggil deployToStaging, dan daripada pipeline mana?” (find_symbol, kemudian dependency_search arah masuk)
  • “Kelas mana yang mewarisi daripada BaseIntegrationSpec?” (dependency_search)
  • “Terangkan bagaimana tugas keluaran membina dan menerbitkan artifak.” (get_task_context)

Had yang diketahui

  • Kaedah Groovy dan fungsi bebas berkongsi nod sintaks yang sama, jadi pratetap methods dalam structural_search tidak memilih apa-apa. Gunakan pratetap functions atau find_symbol sebagai gantinya.
  • Kaedah anda sendiri yang sama nama dengan kaedah GDK atau DSL, seperti collect atau stage, boleh turut ditapis. Jika seorang pemanggil kelihatan hilang, gunakan text_pattern_search.

Langkah seterusnya

Sambungkan repositori dengan panduan permulaan pantas, kemudian semak matriks sokongan di halaman keserasian. Untuk kod JVM yang dikompil oleh binaan anda, baca panduan Java dan panduan Kotlin.

Paling sesuai

  • > Binaan Gradle yang ditulis dalam Groovy, dengan logik binaan dikongsi yang tersebar di banyak fail `.gradle`.
  • > Pipeline Jenkins dan pustaka dikongsi yang perlu dibaca ejen sebelum mengubah CI.
  • > Aplikasi Groovy pada JVM dan suite ujian Spock.

Aliran kerja ejen

  • > Mencari semua pemanggil langkah pustaka dikongsi sebelum mengubah argumennya.
  • > Menjejak skrip binaan mana yang memanggil pembantu yang ditakrifkan dalam fail `.gradle` dikongsi.
  • > Memetakan kelas mana yang mewarisi daripada kelas asas sebelum pemfaktoran semula.

Butiran enjin

  • > Sokongan Groovy merangkumi fail `.groovy`, `.gradle` dan `Jenkinsfile`. Blok closure dan navigasi selamat `?.` dibuang daripada nama panggilan.
  • > Kira-kira 140 nama pustaka standard, Gradle dan Spock serta kira-kira 260 kaedah GDK ditapis daripada hubungan.
  • > Nama DSL builder, termasuk langkah Jenkins seperti `stage` dan `sh`, ditapis apabila digunakan gaya builder; anotasi tidak pernah direkodkan sebagai panggilan.

Titik masuk MCP yang berguna

  • find_symbol

    Gunakan untuk langkah pustaka dikongsi, pembantu binaan atau kelas apabila anda memerlukan takrifan dan pemanggilnya.

  • dependency_search

    Gunakan penelusuran arah masuk untuk melihat skrip dan pipeline mana yang memanggil pembantu binaan.

  • text_pattern_search

    Gunakan untuk panggilan DSL dan kaedah GDK yang ditapis daripada graf.