Maven
NORA serves as a Maven repository supporting artifact upload and download, with transparent proxy to Maven Central or other upstream repositories.
Client Configuration
Section titled “Client Configuration”Configure Maven to use NORA in ~/.m2/settings.xml:
<settings> <mirrors> <mirror> <id>nora</id> <mirrorOf>central</mirrorOf> <url>http://nora.example.com:4000/maven</url> </mirror> </mirrors></settings>For Gradle, add to build.gradle:
repositories { maven { url "http://nora.example.com:4000/maven" }}Deploy artifacts with mvn deploy by configuring the distribution management in your pom.xml and server credentials in settings.xml.
Upstream Proxy
Section titled “Upstream Proxy”NORA tries configured upstream proxies in order when an artifact is not found locally.
config.toml:
[maven]enabled = trueproxy_timeout = 30checksum_verify = trueimmutable_releases = true
[[maven.proxies]]url = "https://repo1.maven.org/maven2"
[[maven.proxies]]url = "https://jcenter.bintray.com"auth = "user:pass"Environment variables:
| Variable | Description | Default |
|---|---|---|
NORA_MAVEN_ENABLED | Enable Maven registry | true |
NORA_MAVEN_PROXIES | Comma-separated upstream URLs (url1,url2 or url1|auth1,url2) | https://repo1.maven.org/maven2 |
NORA_MAVEN_PROXY_TIMEOUT | Upstream timeout in seconds | 30 |
NORA_MAVEN_CHECKSUM_VERIFY | Verify uploaded checksums | true |
NORA_MAVEN_IMMUTABLE_RELEASES | Prevent overwriting released artifacts | true |
Features
Section titled “Features”| Feature | Status | Notes |
|---|---|---|
| Artifact download (GET) | Full | JAR, POM, checksums |
| Artifact upload (PUT) | Full | Any file type |
| GroupId path layout | Full | Dots converted to slashes |
| SHA1/MD5 checksums | Full | Stored alongside artifacts |
maven-metadata.xml | Partial | Stored as-is, no auto-generation |
| SNAPSHOT versions | — | No SNAPSHOT resolution |
| Multi-proxy fallback | Full | Tries proxies in order |
| Content-Type by extension | Full | .jar, .pom, .xml, .sha1, .md5 |
Known Limitations
Section titled “Known Limitations”maven-metadata.xmlis not auto-generated on publish — it must be uploaded explicitly by the build tool.- No SNAPSHOT version management (
-SNAPSHOTto latest timestamp resolution).