lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steven A Rowe <>
Subject RE: [NOTICE] Phasing out maven repos on
Date Mon, 26 Mar 2012 22:54:06 GMT
FYI: Notes on progress uploading Lucene/Solr Maven release artifacts to the Apache Nexus staging

This weekend I successfully staged a fake lucene release using 'ant generate-maven-artifacts',
along with the appropriate ~/.m2/settings.xml <server> entry with my credentials, and
the and -Dm2.repository.url cmdline arguments. However, since 'generate-maven-artifacts'
doesn't sign any of the artifacts, the Apache Nexus repository refused to "close" the staging
repository because there were no signatures.  As a result, we don't have a way to publish
Maven release artifacts right now.

I investigated using the Nexus "Artifact Bundle" upload capability, which accepts a jar containing
a single module's POM and binary jar, with optional source and javadoc jars, and optional
signatures for each, and then creates an automatically "closed" staging repository.  Since
Lucene/Solr has dozens of these modules, and since the Nexus interface only accepts one Artifact
Bundle at a time, this mechanism would require a prohibitive amount of time to manual upload
each bundle, even if creation of the bundles were automated.

So I tested various forms of packaging multiple modules' artifacts&signatures in a single
bundle, to see if Nexus would handle them (the short version: Nexus declined to do so):

1)      Simply jar'ing the dist/maven/ contents after running 'ant generate-maven-artifacts'
- this failed, first because Nexus didn't like the maven-metadata.xml files, and finally,
after removing them, because although it *succeeded* in unpacking and recognizing all artifacts
& signatures, Nexus placed everything under a bogus groupId representing the first directory
it encounted when unpacking the bundle -- something like org/apache/lucene/lucene-analyzers/3.6.0/org/apache/lucene/lucene-*.

2)      Jar'ing all POMs, artifacts&signatures in a flat layout with no directories -
this failed because Nexus claimed it couldn't find any artifacts.

3)      Jar'ing one level deep directories, with each module's artifacts&signatures in
its own self-named directory - this failed, again because Nexus claimed it couldn't find any

I can think of two alternatives to enable publishing Maven release artifacts through the Apache
Nexus repository:

1)      Write a new Ant build target to stage the contents of dist/maven/ (package/maven/
for Solr), after running the 'ant generate-maven-artifact' and 'ant sign-artifacts'.

2)      Write a new Ant build target, based on Maven Ant Tasks's ability to run 'mvn gpg:sign-and-deploy'
from Ant, to sign the artifacts and stage everything directly to the Apache Nexus repository.

#1 is the least disruptive to the current release process, in that release votes would continue
to be over the Maven artifacts in the directory structure pointed to by the RC URL.

#2 is the method recommended by the Sonatype-produced Maven documentation <>
and <>,
and is used by a few other Apache projects.

Unless I hear otherwise, I'll assume that #1 is the better route for Lucene/Solr, at this
juncture anyway.


From: Steven A Rowe []
Sent: Wednesday, March 21, 2012 4:16 PM
Subject: FW: [NOTICE] Phasing out maven repos on

FYI, as of next year, we will no longer be able to publish Maven artifacts as part of a release
by putting them into the ibiblio directory on (see Joe Schaefer's message

When I switched the nightly Maven Jenkins jobs to deploy snapshots to the ASF Nexus snapshot
repository (see <>), as part of signing
Lucene/Solr up for using the repository, somebody from infrastructure deleted all contents
under both the o.a.lucene and o.a.solr directories in the ibiblio directory on
 This was expected; according to <>:
"Move Existing Artifacts: In order to maintain the proper maven-metadata.xml files and to
prevent rsync conflicts in Central, we must move all your artifacts to the new repository.
We will move your artifacts from the old repository on people to the new repository and mark
the folder in people as read-only to prevent accidental deployments."

I plan on using my own credentials to do some test release deployments to the ASF Nexus repo.
 Note that there is a staging process, and I will be careful not to "promote" any of my tests
to be real releases.

I'll update the Lucene/Solr release wiki pages once I've got it working.


From: Joe Schaefer []<mailto:[]>
Sent: Wednesday, March 21, 2012 3:01 PM
To: Apache Infrastructure
Subject: [NOTICE] Phasing out maven repos on

If your PMC does not use maven for distributing artifacts,
or you have already switched to using,
you may disregard this notice.

Along with the rsyncs for websites, we will be shutting down
ALL maven repos currently hosted on in
Jan 2013.  For impacted projects please see

Please direct all feedback on this change to<>.
Thanks for your attention.

View raw message