Maven POM Query Patterns

SkillFiles & storage

Dasel v3 selector patterns for Maven POM XML files — use when querying dependency versions, filtering by groupId or scope, extracting module hierarchy from parent POMs, or detecting version conflicts across enterprise multi-module Java projects. Load this skill when working with pom.xml files using dasel.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Maven POM Query Patterns skill

What this skill tells your AI

The instructions your AI receives, as published by jamie-bitflight/claude_skills in plugins/dasel/skills/enterprise-maven-pom/SKILL.md and read by ahel’s review.

<when_to_use>

Load this skill when querying any pom.xml file — extracting dependency versions, filtering by groupId or scope, mapping module hierarchy from parent POMs, or detecting version conflicts across a multi-module Java project.

</when_to_use>

Domain skill for querying Maven POM XML files using dasel v3. Always pass -i xml explicitly. Child element text content (groupId, artifactId, version, scope) is accessed by element name directly — no #text needed. Write intermediate batch results to /tmp/, never to the source tree.

Dependency Extraction

# All dependency groupIds from a single POM
cat pom.xml | dasel -i xml 'project.dependencies.dependency.map(groupId)'

Framework Version Filtering

Filter dependencies by groupId to isolate framework-specific versions.

# Spring dependency versions
cat pom.xml | dasel -i xml 'project.dependencies.dependency.filter(groupId == "org.springframework").map(version)'

# Hibernate dependency versions
cat pom.xml | dasel -i xml 'project.dependencies.dependency.filter(groupId == "org.hibernate").map(version)'

Scope Filtering

# Test-scoped dependency artifactIds
cat pom.xml | dasel -i xml 'project.dependencies.dependency.filter(scope == "test").map(artifactId)'

# Compile-scoped dependencies (no scope element defaults to compile)
cat pom.xml | dasel -i xml 'project.dependencies.dependency.filter(scope == "compile").map(artifactId)'

Module Hierarchy

Extract module paths from a parent POM to map the project structure.

# Module list from parent POM
cat pom.xml | dasel -i xml 'project.modules.module'

Cross-POM Version Conflict Detection

Batch pattern — iterate all POMs, extract dependencies per file, compare. Write results to /tmp/.

# Collect all dependency groupIds across every POM in the hierarchy
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

Inspect /tmp/all_deps.txt for the same groupId appearing with different versions across modules.

Multi-Field Extraction

Extract groupId and artifactId together for dependency inventory.

# Dependency coordinates (groupId + artifactId) — run as two passes
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

Enterprise POMs use dependencyManagement to declare BOM-controlled versions separately from active dependencies.

# Managed dependency versions (BOM section)
cat pom.xml | dasel -i xml 'project.dependencyManagement.dependencies.dependency.map(version)'

# Active dependency versions (may be empty if version comes from BOM)
cat pom.xml | dasel -i xml 'project.dependencies.dependency.map(version)'

Signals

GitHub stars
66
Forks
10
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
enterprise-maven-pom
Source
github.com/jamie-bitflight/claude_skills