 -----
 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.1.0        | 2022-06-29        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = file-management}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-archiver/} <<<maven-archiver>>>}}                         | 3.6.2        | 2024-03-24        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-archiver}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-artifact-transfer/} <<<maven-artifact-transfer>>>}}       | 0.13.1       | 2020-12-26        | An API to install, deploy and resolve artifacts with Maven | {{{https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git}Git}} / {{{https://github.com/apache/maven-artifact-transfer/}GitHub}} | {{{https://issues.apache.org/jira/issues/?jql=project = MSHARED AND status != Closed AND component = maven-artifact-transfer}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-common-artifact-filters/} <<<maven-common-artifact-filters>>>}}  | 3.3.2 | 2022-09-12        | Filters 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-common-artifact-filters}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-dependency-analyzer/} <<<maven-dependency-analyzer>>>}}   | 1.13.2       | 2023-05-01        | 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 = MSHARED AND status != Closed AND component = maven-dependency-analyzer}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-dependency-tree/} <<<maven-dependency-tree>>>}}           | 3.2.1        | 2022-11-16        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-dependency-tree}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.3.2        | 2024-03-03        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-filtering}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-invoker/} <<<maven-invoker>>>}}                           | 3.2.0        | 2022-04-05        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-invoker}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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-jarsigner}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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-mapping}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-reporting-api/} <<<maven-reporting-api>>>}}               | 4.0.0-M10    | 2024-01-07        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-reporting-api}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-reporting-exec/} <<<maven-reporting-exec>>>}}             | 2.0.0-M12    | 2023-11-21        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-reporting-exec}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-reporting-impl/} <<<maven-reporting-impl>>>}}             | 4.0.0-M13    | 2023-12-10        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-reporting-impl}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-script-interpreter/} <<<maven-script-interpreter>>>}}     | 1.5          | 2024-04-05        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-script-interpreter}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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-shared-incremental}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-shared-jar/} <<<maven-shared-jar>>>}}                     | 3.0.0        | 2023-04-15        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-shared-jar}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-shared-resources/} <<<maven-shared-resources>>>}}         | 5            | 2022-11-21        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-shared-resources}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-shared-utils/} <<<maven-shared-utils>>>}}                 | 3.4.2        | 2023-05-11        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-shared-utils}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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-shared-io}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/shared/maven-verifier/} <<<maven-verifier>>>}}                         | 2.0.0-M1     | 2022-09-22        | 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/issues/?jql=project = MSHARED AND status != Closed AND component = maven-verifier}JIRA}}
*----------------------------------------------------------------------------+--------------+-------------------+------------------+------------------------+---------------------+
| {{{/scm/} <<<maven-scm>>>}}                                                | 2.0.0-M1     | 2022-01-08        | 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}}.

