Maven POM Abfragemuster
<when_to_use>
Laden Sie dieses Skill, wenn Sie eine beliebige pom.xml-Datei abfragen — Abhängigkeitsversionen extrahieren, nach groupId oder scope filtern, die Modulhierarchie aus Parent POMs abbilden oder Versionskonflikte in einem Multi-Modul-Java-Projekt erkennen möchten.
</when_to_use>
Domänenspezifisches Skill zum Abfragen von Maven POM XML-Dateien mit dasel v3. Übergeben Sie immer explizit -i xml. Der Textinhalt von Kindelementen (groupId, artifactId, version, scope) wird direkt über den Elementnamen angesprochen — kein #text erforderlich. Schreiben Sie zwischenzeitliche Batch-Ergebnisse nach /tmp/, niemals in das Quellverzeichnis.
Abhängigkeitsextraktion
# Alle dependency groupIds aus einer einzelnen POM
cat pom.xml | dasel -i xml 'project.dependencies.dependency.map(groupId)'
Framework-Version-Filterung
Filtern Sie Abhängigkeiten nach groupId, um frameworkspezifische Versionen zu isolieren.
# Spring-Abhängigkeitsversionen
cat pom.xml | dasel -i xml 'project.dependencies.dependency.filter(groupId == "org.springframework").map(version)'
# Hibernate-Abhängigkeitsversionen
cat pom.xml | dasel -i xml 'project.dependencies.dependency.filter(groupId == "org.hibernate").map(version)'
Scope-Filterung
# Test-scoped dependency artifactIds
cat pom.xml | dasel -i xml 'project.dependencies.dependency.filter(scope == "test").map(artifactId)'
# Compile-scoped Abhängigkeiten (kein scope-Element entspricht compile)
cat pom.xml | dasel -i xml 'project.dependencies.dependency.filter(scope == "compile").map(artifactId)'
Modulhierarchie
Extrahieren Sie Modulpfade aus einem Parent POM, um die Projektstruktur abzubilden.
# Modulliste aus Parent POM
cat pom.xml | dasel -i xml 'project.modules.module'
Versionsübergreifende Konflikterkennung
Batch-Muster — durchlaufen Sie alle POMs, extrahieren Sie Abhängigkeiten pro Datei, vergleichen Sie. Ergebnisse nach /tmp/ schreiben.
# Alle dependency groupIds aus jeder POM in der Hierarchie sammeln
for pom in $(fdfind -e xml -n pom.xml .); do
echo "=== $pom ===" >> /tmp/all_deps.txt
cat "$pom" | dasel -i xml 'project.dependencies.dependency.map(groupId)' >> /tmp/all_deps.txt 2>/dev/null
done
Überprüfen Sie /tmp/all_deps.txt auf dieselbe groupId, die in verschiedenen Modulen mit unterschiedlichen Versionen vorkommt.
Multi-Feld-Extraktion
Extrahieren Sie groupId und artifactId zusammen für ein Abhängigkeitsinventar.
# Abhängigkeitskoordinaten (groupId + artifactId) — als zwei Durchläufe ausführen
cat pom.xml | dasel -i xml 'project.dependencies.dependency.map(groupId)'
cat pom.xml | dasel -i xml 'project.dependencies.dependency.map(artifactId)'
DependencyManagement vs Dependencies
Unternehmens-POMs verwenden dependencyManagement, um BOM-gesteuerte Versionen getrennt von aktiven dependencies zu deklarieren.
# Verwaltete Abhängigkeitsversionen (BOM-Bereich)
cat pom.xml | dasel -i xml 'project.dependencyManagement.dependencies.dependency.map(version)'
# Aktive Abhängigkeitsversionen (kann leer sein, wenn Version aus BOM stammt)
cat pom.xml | dasel -i xml 'project.dependencies.dependency.map(version)'