https://github.com/fasterxml/oss-parent
Grandpa pom for all projects under FasterXML git umbrella
https://github.com/fasterxml/oss-parent
Last synced: 9 months ago
JSON representation
Grandpa pom for all projects under FasterXML git umbrella
- Host: GitHub
- URL: https://github.com/fasterxml/oss-parent
- Owner: FasterXML
- License: apache-2.0
- Created: 2012-04-07T04:24:18.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2025-02-13T23:10:31.000Z (over 1 year ago)
- Last Synced: 2025-02-14T00:23:23.723Z (over 1 year ago)
- Homepage:
- Size: 425 KB
- Stars: 8
- Watchers: 6
- Forks: 19
- Open Issues: 1
-
Metadata Files:
- Readme: README.creole
- License: LICENSE
Awesome Lists containing this project
README
== Introduction ==
This project contains shared parent POM for projects in FasterXML repository.
== Usage ==
When starting a new project, please use the already configured _parent pom_ to avoid replicate the same meta inf in every project:
{{{
com.fasterxml
oss-parent
49
}}}
== More detailed Usage ==
Next sections detail release flow for projects that use the shared parent POM.
You usually only need to read these once; and only if you handle releasing of new versions
=== Prerequisites ===
* Install/Configure GPG - The artifacts that are deployed to the central maven repositories need to be signed.
To do this you will need to have a public and private keypair.
There is a very good [[http://www.sonatype.com/people/2010/01/how-to-generate-pgp-signatures-with-maven/|guide]] that
will walk you though this.
* Install Maven 3.3.0 or higher.
=== Configuration ===
==== Maven ====
Maven can encrypt your servers passwords. We highly recommend that you follow this
[[http://maven.apache.org/guides/mini/guide-encryption.html|guide]] to set your master password and use it to encrypt your Sonatype password in the next section.
==== Sonatype ====
Using the instructions from the previous step encrypt your Sonatype password and add the following servers to your
{{{~/.m2/settings.xml}}} file. You may already have other servers in this file. If not just create the file.
{{{
sonatype-nexus-snapshots
cowtowncoder
{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}
sonatype-nexus-staging
cowtowncoder
{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}
}}}
=== Release ===
The release plugin for maven is already configured in the parent pom file so all you need to do is execute the following
two steps to complete the release. The first step will create the release tag and update the pom with the correct
release and snapshot versions. The second step will sign and deploy the artifacts to the Sonatype open source repository.
This repository is synced every hour to the central Maven repositories.
If you don't supply the optional {{{gpg.passphrase}}} then you will be prompted for it.
* Prepare the release
{{{ mvn release:prepare }}}
* Perform
{{{ mvn release:perform -Dgpg.passphrase=thephrase}}}
or just
{{{ mvn release:perform }}}
and type the gpg passphrase when prompted
Now you can checkout the new release ( or just use the one left over from the release in target/checkout) and issue the
following to build the artifacts for the site.
{{{mvn package}}}
=== Managing Sonatype's Nexus ===
The parent pom is configured to work with Sonatype's Nexus to simplify the Staging Repository close and promote
operation, without logging in on Nexus using the browser.
First of all, add in the {{{~/.m2/settings.xml}}} the following snippet:
{{{
org.sonatype.plugins
}}}
then in the project dir you can use the nexus goals described on the
[[http://www.sonatype.com/books/nexus-book/reference/staging-sect-managing-plugin.html|plugin page]]