Home > oss-parent

oss-parent

Oss-parent is a project mainly written in ..., based on the Apache-2.0 license.

== Introduction ==

This page will guide the development team with setting up their environment to perform a release.

== Users ==

Declare in your {{{pom.xml}}} the Sourcesense parent pom: {{{

com.sourcesense oss-parent VERSION

}}}

== Developers ==

== Configuration ==

=== Maven === As of Maven 2.1.0 you can now 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. {{{ <?xml version="1.0" encoding="UTF-8"?>

sonatype-nexus-snapshots simone.tripodi {jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=} sonatype-nexus-staging simone.tripodi {jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}

}}}

=== Configure the MyBatis parent pom === If you're stared a new project, please use the already configured parent pom (actually version 1) to avoid replicate the same meta inf in every project: {{{

com.sourcesense oss-parent 1

}}}

Even if follows below a guide that illustrates how to simplify the development, please take a look at the source code to see what has been already declared and don't invest time on something already done.

== 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 -Pparent-release }}}

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]]

= GPG Keys =

The file located on

{{{ https://github.com/sourcesense/oss-parent/blob/master/KEYS }}}

contains the Sourcesense's developers' GPG keys. Users can import the keys to verify the artifact signatures.

=== Users ===

Checkout the file by running

{{{ git clone [email protected]:sourcesense/oss-parent.git }}}

and run

{{{ gpg --import KEYS }}}

=== Developers ===

Checkout the file by running

{{{ git clone [email protected]:sourcesense/oss-parent.git }}}

and run

{{{ (gpg --list-sigs && gpg --armor --export ) >> KEYS }}}

then recommit

{{{ git ci -m "added simone's gpg key" && git push }}}

Previous:sectoid-gentoo