Maven and Gradle
Use rvn mvn and native Maven tooling to install and deploy private JVM artifacts from Ravenstash without modifying global settings.xml.
Updated 2026-06-24
This guide covers native Maven tooling. For the simpler rvn pkg workflow that works without touching Maven configuration, see Getting started.
Use placeholder names like acme and jvm below. In the app, replace them with your customer public ID and repository public ID.
rvn mvn — native mvn with injected auth
rvn mvn passes all arguments directly to mvn, injecting the private repository URL and credentials from the active session. Your global settings.xml is not modified.
rvn mvn install --repo acme/jvm
Configure Maven directly
For environments where rvn is not available, configure the repository in pom.xml:
<repository>
<id>ravenstash</id>
<url>https://rvnsta.sh/maven/x/acme/jvm/</url>
</repository>
And credentials in settings.xml:
<server>
<id>ravenstash</id>
<username>token</username>
<password>${env.RAVENSTASH_TOKEN}</password>
</server>
Publish with rvn pkg
For publishing, use rvn pkg publish rather than mvn deploy. It uploads directly to Ravenstash:
rvn pkg publish --repo acme/jvm
Current status
The Maven implementation covers per-file uploads, metadata reads, checksum companions, snapshot and release semantics, generated metadata XML, and artifact delivery. Anonymous public Maven repositories are planned but not implemented.
