This independent public repository contains build artifacts for use with Apache Maven. These artifacts are published here to provide access to developmental -SNAPSHOT builds that are not published as standard practice to Maven Central.
Add this repository to your pom.xml to access SNAPSHOT artifacts:
<repositories>
<repository>
<id>metaschema-snapshots</id>
<name>Metaschema Framework Snapshots</name>
<url>https://raw.githubusercontent.com/metaschema-framework/maven2/refs/heads/main</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>If you need to use SNAPSHOT versions of Maven plugins, also add:
<pluginRepositories>
<pluginRepository>
<id>metaschema-snapshots</id>
<name>Metaschema Framework Snapshots</name>
<url>https://raw.githubusercontent.com/metaschema-framework/maven2/refs/heads/main</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>Add this repository to your build.gradle or build.gradle.kts:
Groovy:
repositories {
maven {
url = uri("https://raw.githubusercontent.com/metaschema-framework/maven2/refs/heads/main")
content {
includeGroup("dev.metaschema")
includeGroup("dev.metaschema.java")
includeGroup("dev.metaschema.oscal")
}
}
mavenCentral()
}Kotlin:
repositories {
maven {
url = uri("https://raw.githubusercontent.com/metaschema-framework/maven2/refs/heads/main")
content {
includeGroup("dev.metaschema")
includeGroup("dev.metaschema.java")
includeGroup("dev.metaschema.oscal")
}
}
mavenCentral()
}This repository hosts SNAPSHOT builds for the following artifact groups:
| Group ID | Description |
|---|---|
dev.metaschema |
Parent POMs and build support |
dev.metaschema.java |
Metaschema Java framework modules |
dev.metaschema.oscal |
OSCAL Java libraries |
Browse the dev/ directory to see all available artifacts and versions.
Metaschema Core:
<dependency>
<groupId>dev.metaschema.java</groupId>
<artifactId>metaschema-core</artifactId>
<version>3.0.0.M1-SNAPSHOT</version>
</dependency>OSCAL Java Library:
<dependency>
<groupId>dev.metaschema.oscal</groupId>
<artifactId>liboscal-java</artifactId>
<version>5.3.0-SNAPSHOT</version>
</dependency>Old SNAPSHOT builds are automatically pruned daily via GitHub Actions to manage repository size.
Retention Policy:
- All builds from the last 30 days are retained
- At least 1 build (the latest) is always kept for each SNAPSHOT version, even if older than 30 days
This ensures that:
- Recent development work is preserved
- Older snapshot versions remain usable (with at least their latest build)
- Repository size stays manageable
To run the pruner locally:
cd pruner
npm install
npm run build
# Dry run (see what would be deleted without actually deleting)
npm run prune:dry
# Actual pruning
npm run prunePruning behavior is configured in pruner/config.yml:
# Base directory containing Maven artifacts
baseDir: "../dev"
# Retention policy
retention:
days: 30 # Keep builds from the last N days
minBuilds: 1 # Always keep at least this many builds
# Logging level: DEBUG, INFO, WARN, ERROR
logLevel: INFO
# Pattern for snapshot directories
snapshotPattern: ".*-SNAPSHOT"Artifacts are published to this repository by CI/CD workflows in the source projects (e.g., metaschema-java). These workflows:
- Build the project
- Deploy artifacts to this repository via Git commits
- Commits follow the pattern:
[CI SKIP] Deploying artifacts for [group]:[artifact]:[version]
You can manually trigger the pruning workflow from the Actions tab:
- Click "Run workflow"
- Optionally enable "Perform a dry run" to preview changes
- Click "Run workflow"