# Groovy i Maguyva: kodgrafer för Gradle- och Jenkins-kod

Canonical source: https://maguyva.ai/sv/languages/groovy

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva stöder Groovy med AST, symboler och graf, så att AI-agenter kan följa klasser, closures och anrop i Groovy-appar, Gradle-byggen och Jenkinsfiles.

## Stödöversikt

- Nivå: Stöd för AST och symboler
- Programmering
- Filändelser: .gradle, .groovy, .jenkinsfile
- Riktig AST-parsning för syntaxmedveten sökning och strukturell kontext.
- Namngivna symboler driver semantisk uppslagning och korsreferenser. Grafnavigering är tillgänglig när relationsextraktion är aktiverad.
- Det här språket bidrar med symboler och relationer till grafmedveten sökning; vilka kanttyper som stöds varierar med språkets inbyggda konstruktioner.
- Både AST-parsning och symbolextraktion är tillgängliga.

## Bäst lämpad för

- Gradle-byggen skrivna i Groovy, där delad bygglogik ligger i många `.gradle`-filer.
- Jenkins-pipelines och shared libraries som agenter måste läsa innan CI ändras.
- Groovy-applikationer och Spock-testsviter på JVM.

## Agentarbetsflöden

- Hitta alla anropare av ett steg i ett shared library innan dess argument ändras.
- Spåra vilka byggskript som anropar en hjälpfunktion definierad i en gemensam `.gradle`-fil.
- Kartlägga vilka klasser som ärver från en basklass inför en refaktorering.

## Där Groovy får ytliga AI-verktyg att snubbla

Groovy läses ofta som konfiguration. I ett Gradle-bygge är `dependencies { implementation ... }` en kedja av metodanrop med closures, och en deklarativ Jenkinsfile likaså. Builders gör godtyckliga namn till anrop, och GDK lägger till metoder som `each` och `collect` på varje objekt. Ett verktyg som registrerar varje anrop drunknar i det bruset.

Maguyva filtrerar bort DSL- och GDK-lagret så att dina egna metoder och klasser syns.

## Vad Maguyva extraherar i Groovy

Maguyva täcker `.groovy`- och `.gradle`-filer samt `Jenkinsfile`. Klasser, funktioner och metoder extraheras, och importer normaliserar `import static`- och `as`-alias. Anropsnamn rensas från avslutande closure-block och safe-navigation-operatorn `?.`, så `repo?.save(order) { ... }` registreras som ett anrop till `save`. Ett anrop utan mottagare inne i en klass slås upp till klassens egen metod.

Brus filtreras i lager:

- Omkring 140 namn från standardbiblioteket, Gradle och Spock, som `dependencies`, `implementation`, `task`, `given`, `when`, `then` och `Mock`.
- Omkring 260 GDK-metoder, som `each`, `collect`, `inject` och `eachLine`.
- Builder-DSL-namn, inklusive Jenkins-steg som `pipeline`, `stage`, `steps` och `sh`, när de används i builder-stil i stället för att anropas med parenteser.
- AST-transformations- och ramverksannoteringar som `@CompileStatic`, `@Immutable` och `@Autowired`, som aldrig registreras som anrop.

Grafen registrerar också arv, instansiering samt läsningar och skrivningar.

## Exempel på prompter för agenter

- "Vem anropar `deployToStaging`, och från vilka pipelines?" (`find_symbol`, sedan `dependency_search` incoming)
- "Vilka klasser ärver från `BaseIntegrationSpec`?" (`dependency_search`)
- "Förklara hur release-tasken bygger och publicerar artefakter." (`get_task_context`)

## Kända begränsningar

- Groovy-metoder och fria funktioner delar en syntaxnod, så presetet `methods` i `structural_search` väljer ingenting. Använd i stället presetet `functions` eller `find_symbol`.
- En egen metod som heter samma sak som en GDK- eller DSL-metod, som `collect` eller `stage`, kan filtreras bort tillsammans med dem. Använd `text_pattern_search` när en anropare verkar saknas.

## Nästa steg

Anslut ett repo med [snabbstarten](/sv/docs/quickstart) och kontrollera sedan stödmatrisen på [kompatibilitetssidan](/sv/docs/compatibility). För JVM-koden som dina byggen kompilerar, läs [guiden för Java](/sv/languages/java) och [guiden för Kotlin](/sv/languages/kotlin).

## Motordetaljer

- Groovy-stödet omfattar `.groovy`, `.gradle` och `Jenkinsfile`. Anropsnamn tappar closure-block och `?.`-safe-navigation.
- Omkring 140 namn från standardbiblioteket, Gradle och Spock och omkring 260 GDK-metoder filtreras bort från relationerna.
- Builder-DSL-namn, inklusive Jenkins-steg som `stage` och `sh`, filtreras i builder-stil, och annoteringar registreras aldrig som anrop.

## Användbara MCP-ingångar

- `find_symbol`: Använd det för ett steg i ett shared library, en bygghjälpare eller en klass när du behöver definitionen och anroparna.
- `dependency_search`: Använd incoming-traversering på en bygghjälpare för att se vilka skript och pipelines som anropar den.
- `text_pattern_search`: Använd det för DSL-anrop och GDK-metoder, som filtreras bort från grafen.
