Skip to content

Maven

NORA serves as a Maven repository supporting artifact upload and download, with transparent proxy to Maven Central or other upstream repositories.

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.

NORA tries configured upstream proxies in order when an artifact is not found locally.

config.toml:

[maven]
enabled = true
proxy_timeout = 30
checksum_verify = true
immutable_releases = true
[[maven.proxies]]
url = "https://repo1.maven.org/maven2"
[[maven.proxies]]
url = "https://jcenter.bintray.com"
auth = "user:pass"

Environment variables:

VariableDescriptionDefault
NORA_MAVEN_ENABLEDEnable Maven registrytrue
NORA_MAVEN_PROXIESComma-separated upstream URLs (url1,url2 or url1|auth1,url2)https://repo1.maven.org/maven2
NORA_MAVEN_PROXY_TIMEOUTUpstream timeout in seconds30
NORA_MAVEN_CHECKSUM_VERIFYVerify uploaded checksumstrue
NORA_MAVEN_IMMUTABLE_RELEASESPrevent overwriting released artifactstrue
FeatureStatusNotes
Artifact download (GET)FullJAR, POM, checksums
Artifact upload (PUT)FullAny file type
GroupId path layoutFullDots converted to slashes
SHA1/MD5 checksumsFullStored alongside artifacts
maven-metadata.xmlPartialStored as-is, no auto-generation
SNAPSHOT versionsNo SNAPSHOT resolution
Multi-proxy fallbackFullTries proxies in order
Content-Type by extensionFull.jar, .pom, .xml, .sha1, .md5
  • maven-metadata.xml is not auto-generated on publish — it must be uploaded explicitly by the build tool.
  • No SNAPSHOT version management (-SNAPSHOT to latest timestamp resolution).