Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:41:08 +08:00
commit f782c8ace0
8 changed files with 508 additions and 0 deletions

View File

@@ -0,0 +1,96 @@
---
name: pom-ordering
description: Enforce Maven POM dependency ordering rules. This skill should be used when editing pom.xml files.
---
## 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.liftwizard</groupId>
<artifactId>liftwizard-bundle-cors</artifactId>
<scope>runtime</scope>
</dependency>
<!--endregion-->
<!--region Liftwizard config-->
<dependency>
<groupId>io.liftwizard</groupId>
<artifactId>liftwizard-config-logging-logstash-console</artifactId>
<scope>runtime</scope>
</dependency>
<!--endregion-->
<!--endregion-->
<!--region Test dependencies -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<!--endregion-->
</dependencies>
```