Back to Skills

pom-ordering

verified

Enforce Maven POM dependency ordering rules. This skill should be used when editing pom.xml files.

View on GitHub

Marketplace

motlin-claude-code-plugins

motlin/claude-code-plugins

Plugin

java

productivity

Repository

motlin/claude-code-plugins
3stars

plugins/java/skills/pom-ordering/SKILL.md

Last Verified

January 24, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/motlin/claude-code-plugins/blob/main/plugins/java/skills/pom-ordering/SKILL.md -a claude-code --skill pom-ordering

Installation paths:

Claude
.claude/skills/pom-ordering/
Powered by add-skill CLI

Instructions

## Ordering Rules

First, group dependencies by scope (compile, runtime, test).

Within each scope, group by groupId in this order:

1. First-party (${project.groupId} or modules within the project)
2. cool.klass
3. io.liftwizard
4. org.eclipse.collections
5. io.dropwizard
6. Other third-party libraries
7. Jakarta

## Region Comment Structure

Use region comments for each groupId+scope combination:

- `<!--region Project compile dependencies -->`
- `<!--region Project runtime dependencies -->`
- `<!--region Klass compile dependencies -->`
- `<!--region Klass runtime dependencies -->`
- `<!--region Liftwizard compile dependencies -->`
- `<!--region Liftwizard runtime dependencies -->`
- `<!--region Compile dependencies -->` (for other dependencies)
- `<!--region Runtime dependencies -->`
- `<!--region Test dependencies -->`

Close each region with `<!--endregion [name] -->`

Within some groups, use nested regions for further organization:

- For io.liftwizard runtime: `<!--region Liftwizard bundles -->` then `<!--region Liftwizard config-->`
- For io.dropwizard: core modules first, then specialized modules

## Example Structure

```xml
<dependencies>

    <!--region Project compile dependencies -->
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>example-services</artifactId>
        <version>${project.version}</version>
    </dependency>
    <!--endregion-->

    <!--region Project runtime dependencies -->
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>example-domain-model</artifactId>
        <version>${project.version}</version>
        <scope>runtime</scope>
    </dependency>
    <!--endregion-->

    <!--region Liftwizard runtime dependencies -->
    <dependency>
        <groupId>io.liftwizard</groupId>
        <artifactId>liftwizard-graphql-reladomo-meta</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!--region Liftwizard bundles -->
    <dependency>
        <groupId>io.li

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
2375 chars