 -----
 Apache Software Foundation Parent POM
 -----
 Benson Margulies
 Hervé Boutemy
 Karl Heinz Marbaise
 -----
 2016-05-09
 -----

~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements.  See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership.  The ASF licenses this file
~~ to you under the Apache License, Version 2.0 (the
~~ "License"); you may not use this file except in compliance
~~ with the License.  You may obtain a copy of the License at
~~
~~   http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing,
~~ software distributed under the License is distributed on an
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~ KIND, either express or implied.  See the License for the
~~ specific language governing permissions and limitations
~~ under the License.

~~ NOTE: For help with the syntax of this file, see:
~~ https://maven.apache.org/doxia/references/apt-format.html

Apache Software Foundation Parent POM

    This project consists of a POM that contains settings that are
    likely to be useful to any Apache project that is building and
    releasing code with Maven 3 (Maven 2.x is not supported any more since version 17). By using this project as a parent,
    a project gets these settings.

    Most project will want to override some of these settings.

    The following is a list of the items configured in this POM:

 * Top-level project properties:
    
  ** <<license>>: Apache License, version 2.0.
    
  ** <<organization>>: The Apache Software Foundation
    
  ** <<url>>: {{<<<http://www.apache.org/>>>}}. You should override this.
    
  ** <<repositories>>: The pom adds the Apache snapshot
     repository ({{<<<https://repository.apache.org/snapshots>>>}})
    
  ** <<distributionManagement>>: The POM sets up for releases to the Apache Nexus
     instance at
     {{<<<https://repository.apache.org/service/local/staging/deploy/maven2>>>}}
     and snapshots to
     {{<<<https://repository.apache.org/content/repositories/snapshots>>>}}. Note
     that there are POM parameters (<<<distMgmtSnapshotsName>>> and <<<distMgmtSnapshotsUrl>>>)
     that you can override to change the snapshot location. 
    
  ** <<mailingLists>>: The POM sets up generic Apache announcement
     lists. You should override this.
    
 * <<pluginManagement>>: The plugin management section specifies versions
    of a list of plugins. See the {{{./plugin-management.html}Plugin Management report}} for
    the complete list with versions. 
    
  ** The compiler plugin is set to default to Java 1.4 and UTF-8 source.
    
  ** the jar plugin is set to add default specification and implementation entries.
    
  ** the resources plugin is set for UTF-8.
    
  ** the release plugin: the release plugin is set, via the
    \<arguments\> configuration element, to enable the
    <<apache-release>> profile for <<all>> executions and to disable
    \<useReleaseProfiles\>.  You can remove this with an empty
    \<arguments/\> element in the configuration of the release plugin.

 * <<plugins>>: The plugins section configures one execution:
    
  ** maven-remote-resources-plugin for {{{/apache-resource-bundles/}org.apache:apache-jar-resource-bundle:1.4}}.

  ** maven-site-plugin:attach-descriptor

The <<<apache-release>>> Profile

   As noted above, this pom configures the release plugin to enable
    the <<<apache-release>>> profile for all executions of the release
    plugin. The profile includes the following plugins:

 * maven-assembly-plugin:
    {{{/apache-resource-bundles/}org.apache.apache.resources:apache-source-release-assembly-descriptor:1.0.6}}
    is in the dependencies, and an execution is configured. The plugin
    is configured to take a <<<descriptorRef>>> name from the
    <<sourceReleaseAssemblyDescriptor>> property, which by default is
    set to <<<source-release>>> (zip only): you can override the property with
    <<<source-release-zip-tar>>> (both zip and tar) or <<<source-release-tar>>> (tar only) values.

 * maven-deploy-plugin

 * maven-source-plugin: configured to build and attach a source jar.

 * maven-javadoc-plugin: configured to build and attach a javadoc jar.

 * maven-gpg-plugin: configured to sign everything. It expects to find
    a passphrase in <<<$\{gpg.passphrase\}>>>, presumably in your <<<settings.xml>>>.
    
Settings Configuration
  
  You can have a look at the page in Apache website
  {{{https://www.apache.org/dev/publishing-maven-artifacts.html}Publishing Maven Artifacts}}.
  
  You can test your environment setup using <<<-Papache-release>>> with the command line.

History

#if( $project.version.endsWith( "SNAPSHOT" ) )
  trunk: {{{https://svn.apache.org/viewvc/maven/pom/trunk/asf/pom.xml?view=markup}$project.version}}
  ({{{https://svn.apache.org/viewvc/maven/pom/trunk/asf/pom.xml?r1=HEAD&r2=1675930&diff_format=h}diff}})
#end

*--------------+------------+
|| <<Version>> || <<Release Date>> ||
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-18/pom.xml?view=markup}18}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-18/pom.xml?r1=HEAD&r2=1675930&diff_format=h}diff}}) | 2016-05-12 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-17/pom.xml?view=markup}17}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-17/pom.xml?r1=HEAD&r2=1639452&diff_format=h}diff}}) | 2015-04-24 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-16/pom.xml?view=markup}16}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-16/pom.xml?r1=HEAD&r2=1627336&diff_format=h}diff}}) | 2014-11-13 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-15/pom.xml?view=markup}15}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-15/pom.xml?r1=HEAD&r2=1575044&diff_format=h}diff}}) | 2014-09-24 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-14/pom.xml?view=markup}14}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-14/pom.xml?r1=HEAD&r2=1434717&diff_format=h}diff}}) | 2014-03-06 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-13/pom.xml?view=markup}13}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-13/pom.xml?r1=HEAD&r2=1404788&diff_format=h}diff}}) | 2013-01-20 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-12/pom.xml?view=markup}12}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-12/pom.xml?r1=HEAD&r2=1369674&diff_format=h}diff}}) | 2012-11-01 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-11/pom.xml?view=markup}11}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-11/pom.xml?r1=HEAD&r2=1154610&diff_format=h}diff}}) | 2012-08-08 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-10/pom.xml?view=markup}10}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-10/pom.xml?r1=HEAD&r2=1069621&diff_format=h}diff}}) | 2011-08-09 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-9/pom.xml?view=markup}9}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-9/pom.xml?r1=HEAD&r2=1038252&diff_format=h}diff}}) | 2011-02-15 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-8/pom.xml?view=markup}8}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-8/pom.xml?r1=HEAD&r2=893967&diff_format=h}diff}}) | 2010-11-26 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-7/pom.xml?view=markup}7}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-7/pom.xml?r1=HEAD&r2=766952&diff_format=h}diff}}) | 2009-12-29 |
*--------------+------------+
| {{{https://svn.apache.org/viewvc/maven/pom/tags/apache-6/pom.xml?view=markup}6}} ({{{https://svn.apache.org/viewvc/maven/pom/tags/apache-6/pom.xml?r1=HEAD&r2=766946&diff_format=h}diff}}) | 2009-04-24 |
*--------------+------------+
  
