Jump to content

ReleasingToMavenCentral

From Wikitech
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This page was last updated in 2015 and may be outdated. Please update it if you can.

Maven projects based on the discovery-parent-pom should not follow the instructions below, but instead look at the Building and Release sections of this README.

Walkthrough

  1. Shove ReleasingToMavenCentral/Paranoid.xml into ~/.m2/paranoid.xml
  2. cd your_project
  3. mvn release:prepare
  4. git push --tags gerrit
  5. mvn release:perform
  6. git review
  7. Force everything through gerrit +2/+2
  8. Do the sonatype stuff over at https://oss.sonatype.org/
  9. git checkout <tag version that mvn release:prepare made>
  10. rm -rf ~/.m2/repository_backup; mv ~/.m2/repository ~/.m2/repository_backup
  11. mvn clean install -s ~/.m2/paranoid.xml
  12. Make sure you have Archiva configured
    1. In ~/.m2/settings.xml
    2. In your project's pom.xml
  13. mvn deploy

What can go wrong

git push --tags

If you don't have permission to push tags you'll need to get it granted.

mvn release:perform

If Sonatype gives you HTTP 401s, check your settings file.

~/.m2/settings.xml:

<settings>
  <servers>
    <server>
      <id>sonatype-nexus-staging</id>
      <username>MY_USERNAME</username>
      <password>MY_PASSWORD</password>
    </server>
  </servers>
</settings>

git review

If you never installed the Change-Id-generating commit hook, you'll need to install it, then go back and generate some Change-Ids.

 gitdir=$(git rev-parse --git-dir); scp -p -P 29418 MY_USERNAME@gerrit.wikimedia.org:hooks/commit-msg ${gitdir}/hooks/
 git rebase -i HEAD~2

Change pick to edit, and continue as usual.

mvn clean install -s ~/.m2/paranoid.xml

If one of your dependencies is missing, you'll have to upload those to Archiva's mirrored repository. Make sure that the checksums you have agree with those on http://search.maven.org/