 -----
 Shared Components
 -----
 Dennis Lundberg
 John Casey
 Karl Heinz Marbaise
 -----
 2017-05-03
 -----

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

Shared Components

  The shared components are currently under transition to Maven 3.x only components.

*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
|| <<Shared Component>>                                                      || <<Version>> || <<Release Date>> || <<Description>> || <<Source Repository>> || <<Issue Tracking>> |
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/file-management/} <<<file-management>>>}}                       | 3.0.0        | 2015-12-25        | API to collect files from a given directory using several include/exclude rules. | {{{https://gitbox.apache.org/repos/asf/maven-file-management.git}Git}} / {{{https://github.com/apache/maven-file-management/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/13262}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-archiver/} <<<maven-archiver>>>}}                         | 3.5.0        | 2019-10-23        | Is mainly used by plugins to handle packaging. | {{{https://gitbox.apache.org/repos/asf/maven-archiver.git}Git}} / {{{https://github.com/apache/maven-archiver/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/13268}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-artifact-transfer/} <<<maven-artifact-transfer>>>}}       | 0.12.0       | 2019-11-30        | An API to install, deploy and resolving artifacts with Maven3 | {{{https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git}Git}} / {{{https://github.com/apache/maven-artifact-transfer/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/13281}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-common-artifact-filters/} <<<maven-common-artifact-filters>>>}}  | 3.1.0 | 2018-12-18        | Used to filter lists of Artifact instances. | {{{https://gitbox.apache.org/repos/asf/maven-common-artifact-filters.git}Git}} / {{{https://github.com/apache/maven-common-artifact-filters/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/13269}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-dependency-analyzer/} <<<maven-dependency-analyzer>>>}}   | 1.11.1        | 2018-12-25        | Maven Dependency Analyzer component. | {{{https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git}Git}} / {{{https://github.com/apache/maven-dependency-analyzer/}GitHub}} | {{{https://issues.apache.org/jira/issues/?jql=project%20%3D%20MSHARED%20AND%20component%20%3D%20maven-dependency-analyzer}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-dependency-tree/} <<<maven-dependency-tree>>>}}           | 3.0.1        | 2017-05-07        | Maven Dependency Tree constructs a tree model of a Maven project's dependencies. | {{{https://gitbox.apache.org/repos/asf/maven-dependency-tree.git}Git}} / {{{https://github.com/apache/maven-dependency-tree/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/13264}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/doxia/doxia-sitetools/doxia-integration-tools/} <<<maven-doxia-tools>>>}} |           |                   | moved to {{{/doxia/doxia-sitetools/doxia-integration-tools/} <<<doxia-integration-tools>>>}} | |
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-filtering/} <<<maven-filtering>>>}}                       | 3.1.1        | 2016-06-02        | Components for filtering resources. | {{{https://gitbox.apache.org/repos/asf/maven-filtering.git}Git}} / {{{https://github.com/apache/maven-filtering/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/13380}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-invoker/} <<<maven-invoker>>>}}                           | 3.0.1        | 2018-05-29        | Fires up a Maven build in a new JVM. | {{{https://gitbox.apache.org/repos/asf/maven-invoker.git}Git}} / {{{https://github.com/apache/maven-invoker/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/13271}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-jarsigner/} <<<maven-jarsigner>>>}}                       | 3.0.0        | 2018-10-31        | This component provides some utilities to sign/verify jars/files in your Mojos. | {{{https://gitbox.apache.org/repos/asf/maven-jarsigner.git}Git}} / {{{https://github.com/apache/maven-jarsigner/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/15255}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-mapping/} <<<maven-mapping>>>}}                           | 3.0.0        | 2015-11-19        | A shared component for all plugins that need to do mapping. | {{{https://gitbox.apache.org/repos/asf/maven-mapping.git}Git}} / {{{https://github.com/apache/maven-mapping/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/16150}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-reporting-api/} <<<maven-reporting-api>>>}}               | 3.0          | 2010-05-12        | API to manage report generation. | {{{https://gitbox.apache.org/repos/asf/maven-reporting-api.git}Git}} / {{{https://github.com/apache/maven-reporting-api/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/14413}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-reporting-exec/} <<<maven-reporting-exec>>>}}             | 1.4          | 2017-10-16        | API to manage report plugins preparation with Maven 3. | {{{https://gitbox.apache.org/repos/asf/maven-reporting-exec.git}Git}} / {{{https://github.com/apache/maven-reporting-exec/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/14716}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-reporting-impl/} <<<maven-reporting-impl>>>}}             | 3.0.0        | 2017-06-21        | Abstract classes to manage report generation. | {{{https://gitbox.apache.org/repos/asf/maven-reporting-impl.git}Git}} / {{{https://github.com/apache/maven-reporting-impl/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/13274}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-script-interpreter/} <<<maven-script-interpreter>>>}}     | 1.2          | 2017-07-21        | Utilities to interpret/execute some scripts for various implementations: groovy or beanshell. | {{{https://gitbox.apache.org/repos/asf/maven-script-interpreter.git}Git}} / {{{https://github.com/apache/maven-script-interpreter/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/15256}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-shared-incremental/} <<<maven-shared-incremental>>>}}     | 1.1          | 2013-04-08        | Various utility classes and plexus components for supporting incremental build functionality in Maven plugins. | {{{https://gitbox.apache.org/repos/asf/maven-shared-incremental.git}Git}} / {{{https://github.com/apache/maven-shared-incremental/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/15650}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-shared-jar/} <<<maven-shared-jar>>>}}                     | 1.2          | 2015-12-31        | Utilities which help identify the contents of a JAR, including Java class analysis and Maven metadata analysis. | {{{https://gitbox.apache.org/repos/asf/maven-shared-jar.git}Git}} / {{{https://github.com/apache/maven-shared-jar/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/13279}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-shared-resources/} <<<maven-shared-resources>>>}}         | 2            | 2015-02-05        | This is a collection of templates that are specific to the Maven project. | {{{https://gitbox.apache.org/repos/asf/maven-shared-resources.git}Git}} / {{{https://github.com/apache/maven-shared-resources/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/14715}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-shared-utils/} <<<maven-shared-utils>>>}}                 | 3.2.1        | 2018-02-10        | Utilities functions for use within Maven. | {{{https://gitbox.apache.org/repos/asf/maven-shared-utils.git}Git}} / {{{https://github.com/apache/maven-shared-utils/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/15606}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-shared-io/} <<<maven-shared-io>>>}}                       | 3.0.0        | 2015-12-23        | API for I/O support like logging, download or file scanning. | {{{https://gitbox.apache.org/repos/asf/maven-shared-io.git}Git}} / {{{https://github.com/apache/maven-shared-io/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/12326440/}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-verifier/} <<<maven-verifier>>>}}                         | 1.6          | 2015-06-24        | Used to run Maven builds as part of tests. | {{{https://gitbox.apache.org/repos/asf/maven-verifier.git}Git}} / {{{https://github.com/apache/maven-verifier/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHARED/component/13281}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/scm/} <<<maven-scm>>>}}                                                | 1.11.2       | 2019-03-16        | Generic API to SCM systems.               | {{{https://gitbox.apache.org/repos/asf/maven-scm.git}Git}} / {{{https://github.com/apache/maven-scm/}GitHub}} | {{{https://issues.apache.org/jira/browse/SCM}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+


  Archived version of shared libraries reference documentations are {{{../shared-archives/}located here}}.

