From c0315f7f2cac19989537a60563b317893d0bb423 Mon Sep 17 00:00:00 2001 From: Sylwester Lachiewicz Date: Sat, 4 Jan 2025 18:18:04 +0100 Subject: [PATCH] Apply default formatting to md files --- README.md | 30 +- content/markdown/about.md | 4 +- content/markdown/aether.md | 59 ++-- content/markdown/articles.md | 41 +-- .../markdown/background/history-of-maven.md | 13 +- .../background/philosophy-of-maven.md | 10 +- content/markdown/code-quality-management.md | 15 +- content/markdown/community.md | 4 +- content/markdown/configure.md | 39 +-- .../markdown/developers/conventions/github.md | 10 +- .../markdown/developers/conventions/jira.md | 11 +- .../developers/mojo-api-specification.md | 5 +- .../developers/release/maven-core-release.md | 8 +- ...omponent-reference-documentation-helper.md | 7 +- content/markdown/docs/3.2.1/release-notes.md | 41 +-- content/markdown/docs/3.2.2/release-notes.md | 84 +++--- content/markdown/docs/3.2.3/release-notes.md | 39 +-- content/markdown/docs/3.2.5/release-notes.md | 39 +-- content/markdown/docs/3.3.1/release-notes.md | 77 +++-- content/markdown/docs/3.3.3/release-notes.md | 39 +-- content/markdown/docs/3.3.9/release-notes.md | 203 +++++++------ .../docs/3.5.0-alpha-1/release-notes.md | 271 +++++++++--------- .../docs/3.5.0-beta-1/release-notes.md | 87 ++---- content/markdown/docs/3.5.0/release-notes.md | 141 ++------- content/markdown/docs/3.5.2/release-notes.md | 43 +-- content/markdown/docs/3.5.3/release-notes.md | 39 +-- content/markdown/docs/3.5.4/release-notes.md | 47 +-- content/markdown/docs/3.6.0/release-notes.md | 82 +++--- content/markdown/docs/3.6.1/release-notes.md | 227 +++++++-------- content/markdown/docs/3.6.2/release-notes.md | 146 +++++----- content/markdown/docs/3.6.3/release-notes.md | 74 ++--- content/markdown/docs/3.8.1/release-notes.md | 103 ++++--- content/markdown/docs/3.8.2/release-notes.md | 39 +-- content/markdown/docs/3.8.3/release-notes.md | 39 +-- content/markdown/docs/3.8.4/release-notes.md | 38 +-- content/markdown/docs/3.8.5/release-notes.md | 39 +-- content/markdown/docs/3.8.6/release-notes.md | 39 +-- content/markdown/docs/3.8.7/release-notes.md | 39 +-- content/markdown/docs/3.8.8/release-notes.md | 39 +-- content/markdown/docs/3.9.0/release-notes.md | 39 +-- content/markdown/docs/3.9.1/release-notes.md | 39 +-- content/markdown/docs/3.9.2/release-notes.md | 67 ++--- content/markdown/docs/3.9.3/release-notes.md | 65 ++--- content/markdown/docs/3.9.4/release-notes.md | 38 +-- content/markdown/docs/3.9.5/release-notes.md | 39 +-- content/markdown/docs/3.9.6/release-notes.md | 39 +-- content/markdown/docs/3.9.7/release-notes.md | 41 +-- content/markdown/docs/3.9.8/release-notes.md | 43 +-- content/markdown/docs/3.9.9/release-notes.md | 39 +-- .../docs/4.0.0-alpha-10/release-notes.md | 44 +-- .../docs/4.0.0-alpha-12/release-notes.md | 52 ++-- .../docs/4.0.0-alpha-13/release-notes.md | 38 +-- .../docs/4.0.0-alpha-2/release-notes.md | 39 +-- .../docs/4.0.0-alpha-3/release-notes.md | 39 +-- .../docs/4.0.0-alpha-4/release-notes.md | 39 +-- .../docs/4.0.0-alpha-5/release-notes.md | 39 +-- .../docs/4.0.0-alpha-7/release-notes.md | 56 ++-- .../docs/4.0.0-alpha-8/release-notes.md | 72 ++--- .../docs/4.0.0-alpha-9/release-notes.md | 48 ++-- .../docs/4.0.0-beta-3/release-notes.md | 38 +-- .../docs/4.0.0-beta-4/release-notes.md | 38 +-- .../docs/4.0.0-beta-5/release-notes.md | 38 +-- .../markdown/docs/4.0.0-rc-1/release-notes.md | 40 +-- .../markdown/docs/4.0.0-rc-2/release-notes.md | 42 +-- content/markdown/extensions/index.md | 33 +-- content/markdown/faq-unoffical.md | 46 +-- content/markdown/general.md | 7 +- content/markdown/glossary.md | 145 +++++----- .../guides/mini/guide-maven-ci-friendly.md | 6 +- .../mini/guide-multiple-subprojects-4.md | 7 +- .../guides/mini/guide-resolver-transport.md | 16 +- .../guides/plugins/validation/index.md | 34 ++- content/markdown/ide.md | 14 +- content/markdown/issue-management.md | 3 +- content/markdown/maven-1.x-eol.md | 22 +- content/markdown/maven-2.x-eol.md | 119 ++++---- content/markdown/maven-conventions.md | 10 +- content/markdown/maven-jsr330.md | 10 +- content/markdown/maven-logging.md | 4 +- content/markdown/privacy-policy.md | 14 +- content/markdown/project-faq.md | 4 +- content/markdown/project-roles.md | 121 ++++---- .../markdown/reference/maven-classloading.md | 12 +- content/markdown/repositories/artifacts.md | 56 ++-- content/markdown/repositories/index.md | 20 +- content/markdown/repositories/layout.md | 18 +- content/markdown/repositories/local.md | 14 +- content/markdown/repositories/metadata.md | 10 +- content/markdown/repositories/remote.md | 19 +- content/markdown/repository-management.md | 28 +- content/markdown/repository/index.md | 24 +- content/markdown/repository/layout.md | 13 +- .../markdown/resource/branding/actioncards.md | 4 +- content/markdown/run.md | 22 +- content/markdown/scm.md | 152 +++++----- content/markdown/security-plexus-archiver.md | 28 +- content/markdown/security.md | 34 +-- content/markdown/settings.md | 238 +++++++-------- content/markdown/support-and-training.md | 10 +- content/markdown/testimonials.md | 4 +- content/markdown/what-is-maven.md | 29 +- 101 files changed, 2353 insertions(+), 2418 deletions(-) diff --git a/README.md b/README.md index f7a6f6b6cf..130bcb33cf 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,18 @@ # Maven Site @@ -22,7 +22,6 @@ This is the Git repository for the content of . - ## Run Locally You can run @@ -47,3 +46,4 @@ Additional Resources [ml-list]: https://maven.apache.org/mailing-lists.html [cla]: https://www.apache.org/licenses/#clas [build]: https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-site/job/master/ + diff --git a/content/markdown/about.md b/content/markdown/about.md index c13ea32d7a..bf57119e28 100644 --- a/content/markdown/about.md +++ b/content/markdown/about.md @@ -7,7 +7,7 @@ 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 +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 @@ -56,4 +56,4 @@ If you have a suggestion, feel free to contact the development list. ## Where do I get help with Maven? Help for Maven can be obtained by subscribing and posting to -the [Maven Users List](https://maven.apache.org/mailing-lists.html). \ No newline at end of file +the [Maven Users List](https://maven.apache.org/mailing-lists.html). diff --git a/content/markdown/aether.md b/content/markdown/aether.md index 8b78013173..2e4fd133bb 100644 --- a/content/markdown/aether.md +++ b/content/markdown/aether.md @@ -1,4 +1,5 @@ # Aether import plan to Maven + + ## IP Clearance Tracked on [Incubator IP Clearance](http://incubator.apache.org/ip-clearance/maven-aether.html) @@ -24,33 +26,34 @@ and through [MNG-6007](https://issues.apache.org/jira/browse/MNG-6007). ## Code integration -| |current Eclipse|Apache Maven for Maven 3.x| -|---|---|---| -|**Name**|Aether|Maven Artifact Resolver| -|**Name**|[https://projects.eclipse.org/projects/technology.aether](https://projects.eclipse.org/projects/technology.aether)|
| -|**SCM repo**|[aether-core.git](http://git.eclipse.org/c/aether/aether-core.git/aether.html)
[aether-ant.git](http://git.eclipse.org/c/aether/aether-ant.git/aether.html)
[aether-demo.git](http://git.eclipse.org/c/aether/aether-demo.git/aether.html)|[https://gitbox.apache.org/repos/asf?p=maven-resolver.git](https://gitbox.apache.org/repos/asf?p=maven-resolver.git)
([MNG-6008](https://issues.apache.org/jira/browse/MNG-6008))
one unique git repo with 3 independant **master**, **ant-tasks** and **demo** branches| -|**central groupId**|[org.eclipse.aether](https://repo.maven.apache.org/maven2/org/eclipse/aether/)|[org.apache.maven.resolver](https://repo.maven.apache.org/maven2/org/apache/maven/resolver/)| -|**artifactIds**|aether
aether-api
aether-impl
aether-spi
aether-util
aether-transport-\*|maven-resolver
maven-resolver-api
maven-resolver-impl
maven-resolver-spi
maven-resolver-util
maven-resolver-transport-*| -|**OSGi Bundles**|org.eclipse.aether.api
org.eclipse.aether.impl
org.eclipse.aether....|no OSGi bundles in Apache Maven| -|**P2 repo**|http://download.eclipse.org/aether/aether-core/releases/
http://download.eclipse.org/aether/maven-aether-provider/releases/|no P2 repo| -|**API java packages**|org.eclipse.aether...|**Keep packages in Maven 3.x to maintain compatibility for some plugins or extensions using Aether API.**| -|**Impl java packages**|org.eclipse.aether.impl.\*
org.eclipse.aether.internal.\*|Same as API, even if nobody should rely on impl...| -|**SPI java packages**|org.eclipse.aether.spi.\*|Same as API (is it really used outside?)| -|**Util java packages**|org.eclipse.aether.util.\*|Same as API (is it really used outside?)| -|**Transport java packages**|org.eclipse.aether.transport.\*|Same as API (is it really used outside?)| -|**Ant Tasks**|Aether Ant Tasks|Maven Artifact Resolver Ant Tasks| -|**Maven Provider (in core)**|[Maven Aether Provider](http://maven.apache.org/ref/3.3.9/maven-aether-provider/)|[Maven Resolver Provider](https://maven.apache.org/ref/3.6.1/maven-resolver-provider/)| +| | current Eclipse | Apache Maven for Maven 3.x | +|------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Name** | Aether | Maven Artifact Resolver | +| **Name** | [https://projects.eclipse.org/projects/technology.aether](https://projects.eclipse.org/projects/technology.aether) |
| +| **SCM repo** | [aether-core.git](http://git.eclipse.org/c/aether/aether-core.git/aether.html)
[aether-ant.git](http://git.eclipse.org/c/aether/aether-ant.git/aether.html)
[aether-demo.git](http://git.eclipse.org/c/aether/aether-demo.git/aether.html) | [https://gitbox.apache.org/repos/asf?p=maven-resolver.git](https://gitbox.apache.org/repos/asf?p=maven-resolver.git)
([MNG-6008](https://issues.apache.org/jira/browse/MNG-6008))
one unique git repo with 3 independant **master**, **ant-tasks** and **demo** branches | +| **central groupId** | [org.eclipse.aether](https://repo.maven.apache.org/maven2/org/eclipse/aether/) | [org.apache.maven.resolver](https://repo.maven.apache.org/maven2/org/apache/maven/resolver/) | +| **artifactIds** | aether
aether-api
aether-impl
aether-spi
aether-util
aether-transport-\* | maven-resolver
maven-resolver-api
maven-resolver-impl
maven-resolver-spi
maven-resolver-util
maven-resolver-transport-* | +| **OSGi Bundles** | org.eclipse.aether.api
org.eclipse.aether.impl
org.eclipse.aether.... | no OSGi bundles in Apache Maven | +| **P2 repo** | http://download.eclipse.org/aether/aether-core/releases/
http://download.eclipse.org/aether/maven-aether-provider/releases/ | no P2 repo | +| **API java packages** | org.eclipse.aether... | **Keep packages in Maven 3.x to maintain compatibility for some plugins or extensions using Aether API.** | +| **Impl java packages** | org.eclipse.aether.impl.\*
org.eclipse.aether.internal.\* | Same as API, even if nobody should rely on impl... | +| **SPI java packages** | org.eclipse.aether.spi.\* | Same as API (is it really used outside?) | +| **Util java packages** | org.eclipse.aether.util.\* | Same as API (is it really used outside?) | +| **Transport java packages** | org.eclipse.aether.transport.\* | Same as API (is it really used outside?) | +| **Ant Tasks** | Aether Ant Tasks | Maven Artifact Resolver Ant Tasks | +| **Maven Provider (in core)** | [Maven Aether Provider](http://maven.apache.org/ref/3.3.9/maven-aether-provider/) | [Maven Resolver Provider](https://maven.apache.org/ref/3.6.1/maven-resolver-provider/) | ## Versions history -|Aether version|[used in which Maven version](https://maven.apache.org/docs/history.html)| -|---|---| -|Sonatype Aether 1.2|2010-09-02 [3.0-beta-3](https://repo.maven.apache.org/maven2/org/apache/maven/maven-aether-provider/3.0-beta-3/)| -|Sonatype Aether 1.7|2010-10-08 [3.0](http://maven.apache.org/ref/3.0/apache-maven/dependencies.html)| -|Sonatype Aether 1.8|2010-11-26 [3.0.1](http://maven.apache.org/ref/3.0.1/apache-maven/dependencies.html)| -|Sonatype Aether 1.9|2011-01-12 [3.0.2](http://maven.apache.org/ref/3.0.2/apache-maven/dependencies.html)]| -|Sonatype Aether 1.11|2011-03-04 [3.0.3](http://maven.apache.org/ref/3.0.3/apache-maven/dependencies.html)]| -|Sonatype Aether 1.13.1|2012-01-20 [3.0.4](http://maven.apache.org/ref/3.0.4/apache-maven/dependencies.html)
2013-02-23 [3.0.5](http://maven.apache.org/ref/3.0.5/apache-maven/dependencies.html)| -|Eclipse Aether 0.9.0.M2|2013-07-15 [3.1.0](http://maven.apache.org/ref/3.1.0/apache-maven/dependencies.html)
2013-10-04 [3.1.1](http://maven.apache.org/ref/3.1.1/apache-maven/dependencies.html)
2014-02-21 [3.2.1](http://maven.apache.org/ref/3.2.1/apache-maven/dependencies.html)
2014-06-26 [3.2.2](http://maven.apache.org/ref/3.2.2/apache-maven/dependencies.html)
2014-08-17 [3.2.3](http://maven.apache.org/ref/3.2.3/apache-maven/dependencies.html)| -|Eclipse Aether 1.0.0.v20140518|2014-12-20 [3.2.5](http://maven.apache.org/ref/3.2.5/apache-maven/dependencies.html)| -|Eclipse Aether 1.0.2.v20150114|2015-03-18 [3.3.1](http://maven.apache.org/ref/3.3.1/apache-maven/dependencies.html)
2015-04-28 [3.3.3](http://maven.apache.org/ref/3.3.3/apache-maven/dependencies.html)
2015-11-14 [3.3.9](http://maven.apache.org/ref/3.3.9/apache-maven/dependencies.html)| +| Aether version | [used in which Maven version](https://maven.apache.org/docs/history.html) | +|--------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Sonatype Aether 1.2 | 2010-09-02 [3.0-beta-3](https://repo.maven.apache.org/maven2/org/apache/maven/maven-aether-provider/3.0-beta-3/) | +| Sonatype Aether 1.7 | 2010-10-08 [3.0](http://maven.apache.org/ref/3.0/apache-maven/dependencies.html) | +| Sonatype Aether 1.8 | 2010-11-26 [3.0.1](http://maven.apache.org/ref/3.0.1/apache-maven/dependencies.html) | +| Sonatype Aether 1.9 | 2011-01-12 [3.0.2](http://maven.apache.org/ref/3.0.2/apache-maven/dependencies.html)] | +| Sonatype Aether 1.11 | 2011-03-04 [3.0.3](http://maven.apache.org/ref/3.0.3/apache-maven/dependencies.html)] | +| Sonatype Aether 1.13.1 | 2012-01-20 [3.0.4](http://maven.apache.org/ref/3.0.4/apache-maven/dependencies.html)
2013-02-23 [3.0.5](http://maven.apache.org/ref/3.0.5/apache-maven/dependencies.html) | +| Eclipse Aether 0.9.0.M2 | 2013-07-15 [3.1.0](http://maven.apache.org/ref/3.1.0/apache-maven/dependencies.html)
2013-10-04 [3.1.1](http://maven.apache.org/ref/3.1.1/apache-maven/dependencies.html)
2014-02-21 [3.2.1](http://maven.apache.org/ref/3.2.1/apache-maven/dependencies.html)
2014-06-26 [3.2.2](http://maven.apache.org/ref/3.2.2/apache-maven/dependencies.html)
2014-08-17 [3.2.3](http://maven.apache.org/ref/3.2.3/apache-maven/dependencies.html) | +| Eclipse Aether 1.0.0.v20140518 | 2014-12-20 [3.2.5](http://maven.apache.org/ref/3.2.5/apache-maven/dependencies.html) | +| Eclipse Aether 1.0.2.v20150114 | 2015-03-18 [3.3.1](http://maven.apache.org/ref/3.3.1/apache-maven/dependencies.html)
2015-04-28 [3.3.3](http://maven.apache.org/ref/3.3.3/apache-maven/dependencies.html)
2015-11-14 [3.3.9](http://maven.apache.org/ref/3.3.9/apache-maven/dependencies.html) | + diff --git a/content/markdown/articles.md b/content/markdown/articles.md index d99c93cf7c..f7d61f0063 100644 --- a/content/markdown/articles.md +++ b/content/markdown/articles.md @@ -7,7 +7,7 @@ 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 +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 @@ -46,22 +46,23 @@ Just ping us on the [dev mailing list](mailing-lists.html) to get in touch. | Title | Publisher | Author | Published | |:-----------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------|:------------------------------------------------------------|:----------------:| - [From Maven 3 to Maven 5](https://www.javaadvent.com/2021/12/from-maven-3-to-maven-5.html) | [JVM Advent](https://www.javaadvent.com/) | Hervé Boutemy | December 2021 | - [Introduction to Maven Toolchains](https://maarten.mulders.it/2021/03/introduction-to-maven-toolchains/) | | Maarten Mulders | March 2021 | - [What's New in Maven 4](https://maarten.mulders.it/2020/11/whats-new-in-maven-4/) | | Maarten Mulders | November 2020 | - [Customise the Maven Release process](https://maarten.mulders.it/2020/01/customise-the-maven-release-process/) | | Maarten Mulders | January 2020 | - [Create a Customized Build Process in Maven](http://www.sonatype.com/people/2009/08/create-a-customized-build-process-in-maven/) | | John Casey | August 2009 | - [Maven: mas que una herramienta de construccion (in Spanish)](http://www.manuelrecena.com/docs/maven_090625.pdf) | | Manuel Recena | June 2009 | - [Introduction to m2eclipse](http://www.theserverside.com/tt/articles/article.tss?l=Introductiontom2eclipse) | TheServerSide | Tim O'Brien, Bruce Snyder, Eugene Kuleshov | July 2008 | - [Maven 2.x (in Turkish)](http://msaitozen.googlepages.com/maven2.x_dokuman.pdf) | Anadolu Üniversitesi | Mustafa Sait Özen | August 2007 | - [Setting up the Internal Repository](http://www.theserverside.com/tt/articles/article.tss?l=SettingUpMavenRepository) | The Server Side | Avneet Mangat | June 2007 | - [Maven - Menos mal que has venido (in Spanish)](http://www.manuelrecena.com/docs/maven_061106.pdf) | Universidad de Sevilla | Manuel J. Recena Soto | 6 November 2006 | - [FAQ for Maven and Continuum (in French)](http://java.developpez.com/faq/maven/) | Developpez.com | Eric Reboisson | 11 October 2006 | - [Java Posse #070 - Interview with Brett Porter of Maven](http://www.javaposse.com/index.php?post_id=112128) | Java Posse | Tor Norbye, Carl Quinn, Dick Wall, Joe Nuxoll, Brett Porter | 18 July 2006 | - [The Maven 2 POM demystified](https://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html) | JavaWorld | Eric Redmond | 29 May 2006 | - [Maven: Building Complex Systems](https://www.drdobbs.com/architecture-and-design/maven-building-complex-systems/186100398) | Dr.Dobb's | Gigi Sayfan | 21 April 2006 | - [Get the most out of Maven site generation](https://www.javaworld.com/javaworld/jw-02-2006/jw-0227-maven.html) | JavaWorld | John Ferguson Smart | 27 February 2006 | - [An introduction to Maven 2](https://www.javaworld.com/javaworld/jw-12-2005/jw-1205-maven.html?lsrc=maven-users) | JavaWorld | John Ferguson Smart | 5 December 2005 | - [Building J2EE Projects with Maven](https://web.archive.org/web/20051228123436/http://www.onjava.com/pub/a/onjava/2005/09/07/maven.html) | OnJava | Vincent Massol | 7 September 2005 | - [Master and Commander by Julien Dubois](https://web.archive.org/web/20041217085616/http://www.oracle.com/technology/pub/articles/masterj2ee/j2ee_wk2.html) | Oracle | Julien Dubois | November 2004 | - [Apache's Maven Comes of Age](http://www.internetnews.com/dev-news/article.php/3381841) (Coverage of the release of Maven 1.0) | internetnews.com | Sean Michael Kerner | 15 July 2004 | \ No newline at end of file +| [From Maven 3 to Maven 5](https://www.javaadvent.com/2021/12/from-maven-3-to-maven-5.html) | [JVM Advent](https://www.javaadvent.com/) | Hervé Boutemy | December 2021 | +| [Introduction to Maven Toolchains](https://maarten.mulders.it/2021/03/introduction-to-maven-toolchains/) | | Maarten Mulders | March 2021 | +| [What's New in Maven 4](https://maarten.mulders.it/2020/11/whats-new-in-maven-4/) | | Maarten Mulders | November 2020 | +| [Customise the Maven Release process](https://maarten.mulders.it/2020/01/customise-the-maven-release-process/) | | Maarten Mulders | January 2020 | +| [Create a Customized Build Process in Maven](http://www.sonatype.com/people/2009/08/create-a-customized-build-process-in-maven/) | | John Casey | August 2009 | +| [Maven: mas que una herramienta de construccion (in Spanish)](http://www.manuelrecena.com/docs/maven_090625.pdf) | | Manuel Recena | June 2009 | +| [Introduction to m2eclipse](http://www.theserverside.com/tt/articles/article.tss?l=Introductiontom2eclipse) | TheServerSide | Tim O'Brien, Bruce Snyder, Eugene Kuleshov | July 2008 | +| [Maven 2.x (in Turkish)](http://msaitozen.googlepages.com/maven2.x_dokuman.pdf) | Anadolu Üniversitesi | Mustafa Sait Özen | August 2007 | +| [Setting up the Internal Repository](http://www.theserverside.com/tt/articles/article.tss?l=SettingUpMavenRepository) | The Server Side | Avneet Mangat | June 2007 | +| [Maven - Menos mal que has venido (in Spanish)](http://www.manuelrecena.com/docs/maven_061106.pdf) | Universidad de Sevilla | Manuel J. Recena Soto | 6 November 2006 | +| [FAQ for Maven and Continuum (in French)](http://java.developpez.com/faq/maven/) | Developpez.com | Eric Reboisson | 11 October 2006 | +| [Java Posse #070 - Interview with Brett Porter of Maven](http://www.javaposse.com/index.php?post_id=112128) | Java Posse | Tor Norbye, Carl Quinn, Dick Wall, Joe Nuxoll, Brett Porter | 18 July 2006 | +| [The Maven 2 POM demystified](https://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html) | JavaWorld | Eric Redmond | 29 May 2006 | +| [Maven: Building Complex Systems](https://www.drdobbs.com/architecture-and-design/maven-building-complex-systems/186100398) | Dr.Dobb's | Gigi Sayfan | 21 April 2006 | +| [Get the most out of Maven site generation](https://www.javaworld.com/javaworld/jw-02-2006/jw-0227-maven.html) | JavaWorld | John Ferguson Smart | 27 February 2006 | +| [An introduction to Maven 2](https://www.javaworld.com/javaworld/jw-12-2005/jw-1205-maven.html?lsrc=maven-users) | JavaWorld | John Ferguson Smart | 5 December 2005 | +| [Building J2EE Projects with Maven](https://web.archive.org/web/20051228123436/http://www.onjava.com/pub/a/onjava/2005/09/07/maven.html) | OnJava | Vincent Massol | 7 September 2005 | +| [Master and Commander by Julien Dubois](https://web.archive.org/web/20041217085616/http://www.oracle.com/technology/pub/articles/masterj2ee/j2ee_wk2.html) | Oracle | Julien Dubois | November 2004 | +| [Apache's Maven Comes of Age](http://www.internetnews.com/dev-news/article.php/3381841) (Coverage of the release of Maven 1.0) | internetnews.com | Sean Michael Kerner | 15 July 2004 | + diff --git a/content/markdown/background/history-of-maven.md b/content/markdown/background/history-of-maven.md index b160b04642..71d0aff200 100644 --- a/content/markdown/background/history-of-maven.md +++ b/content/markdown/background/history-of-maven.md @@ -1,4 +1,4 @@ -# History of Maven +# History of Maven ## History of Maven by Jason van Zyl @@ -107,4 +107,5 @@ was written by myself with lots of help from Bob McWhirter [6]: http://mail-archives.apache.org/mod_mbox/jakarta-alexandria-dev/200202.mbox/%3c20020202153719.50163.qmail@icarus.apache.org%3e [7]: http://turbine.apache.org/ [8]: http://www.oreillynet.com/pub/a/network/2005/08/30/ruby-rails-david-heinemeier-hansson.html -[9]: http://www.ibiblio.org \ No newline at end of file +[9]: http://www.ibiblio.org + diff --git a/content/markdown/background/philosophy-of-maven.md b/content/markdown/background/philosophy-of-maven.md index 919a33f0d1..91e4c29c5d 100644 --- a/content/markdown/background/philosophy-of-maven.md +++ b/content/markdown/background/philosophy-of-maven.md @@ -1,4 +1,4 @@ -# Philosophy of Maven +# Philosophy of Maven Maven is generally considered by many to be a build tool. Many people who come to Maven initially are familiar diff --git a/content/markdown/code-quality-management.md b/content/markdown/code-quality-management.md index b05a5e670f..48e8523778 100644 --- a/content/markdown/code-quality-management.md +++ b/content/markdown/code-quality-management.md @@ -1,4 +1,5 @@ # Code Quality Management + + Some existing Maven plugins use code analysis technologies (like [Checkstyle][Checkstyle], [PMD][PMD], [JDepend][JDepend], ...) to generate various quality reports. This page lists technologies and platforms that know how to aggregate all @@ -27,12 +29,13 @@ this information to offer enhanced quality management functionalities. Following is an alphabetical list of those we've heard mentioned around the Maven community: -- [Hudson](https://hudson-ci.org) -- [Jenkins](https://jenkins-ci.org) -- [SonarQube](http://www.sonarqube.org/) -- [Squale](http://www.squale.org/) -- [XRadar](http://xradar.sourceforge.net) +- [Hudson](https://hudson-ci.org) +- [Jenkins](https://jenkins-ci.org) +- [SonarQube](http://www.sonarqube.org/) +- [Squale](http://www.squale.org/) +- [XRadar](http://xradar.sourceforge.net) [PMD]: https://maven.apache.org/plugins/maven-pmd-plugin/ [Checkstyle]: https://maven.apache.org/plugins/maven-checkstyle-plugin/ [JDepend]: https://mojohaus.org/jdepend-maven-plugin/ + diff --git a/content/markdown/community.md b/content/markdown/community.md index c456314064..bf9af44034 100644 --- a/content/markdown/community.md +++ b/content/markdown/community.md @@ -1,4 +1,5 @@ # The Maven Community + + Maven, like any other open source project, relies heavily on the efforts of the entire user community to contribute improvements, report defects, communicate use cases, write documentation, diff --git a/content/markdown/configure.md b/content/markdown/configure.md index 0b5e8f1c7e..ddbe0213d1 100644 --- a/content/markdown/configure.md +++ b/content/markdown/configure.md @@ -1,4 +1,5 @@ # Configuring Apache Maven + -The configuration for Apache Maven itself and projects built with it resides -in a number of places: + +The configuration for Apache Maven itself and projects built with it resides +in a number of places: ## `MAVEN_OPTS` environment variable: @@ -39,11 +41,11 @@ configuration for Maven usage across projects. ## `.mvn` directory: -Located within the project's **top level directory**, the files +Located within the project's **top level directory**, the files - - `maven.config` - - `jvm.config` - - `extensions.xml` +- `maven.config` +- `jvm.config` +- `extensions.xml` contain project specific configuration for running Maven. @@ -51,10 +53,10 @@ This directory is part of the project and may be checked into version control. ### `.mvn/extensions.xml` file: -The old way (up to Maven 3.2.5) was to create a jar (must be shaded if you have other dependencies) which contains the extension and put +The old way (up to Maven 3.2.5) was to create a jar (must be shaded if you have other dependencies) which contains the extension and put it manually into the `${MAVEN_HOME}/lib/ext` directory. This means you had to change the Maven installation. The consequence was that everyone -who likes to use this needed to change its installation and on-boarding a developer was more inconvenient. The other -option was to give the path to the jar on command line via `mvn -Dmaven.ext.class.path=extension.jar`. This has the drawback giving those +who likes to use this needed to change its installation and on-boarding a developer was more inconvenient. The other +option was to give the path to the jar on command line via `mvn -Dmaven.ext.class.path=extension.jar`. This has the drawback giving those options to your Maven build every time you call Maven. Not very convenient as well. From now on this can be done much more simpler and more Maven like way. Define an `.mvn/extensions.xml` file which looks like the following: @@ -74,13 +76,13 @@ Now you can simply use an extension by defining the usual maven coordinates grou ### `.mvn/maven.config` file: -It’s really hard to define a general set of options for calling the maven command line. Starting with Maven 3.3.1+, this could be solved by -putting these -options into a script, but this can now simply be done by defining `.mvn/maven.config` file which contains the -configuration options for the `mvn` command line. +It’s really hard to define a general set of options for calling the maven command line. Starting with Maven 3.3.1+, this could be solved by +putting these +options into a script, but this can now simply be done by defining `.mvn/maven.config` file which contains the +configuration options for the `mvn` command line. For example things like `-T3 -U --fail-at-end`. So you only have to call Maven by using `mvn -clean package` instead of `mvn -T3 -U --fail-at-end clean package` and not to miss the `-T3 -U --fail-at-end` options on every call. +clean package` instead of `mvn -T3 -U --fail-at-end clean package` and not to miss the `-T3 -U --fail-at-end` options on every call. The `.mvn/maven.config` is located in the project's top level `.mvn` directory and also works in the root of a multi module build. **NOTICE** starting with Maven **3.9.0** each single argument must be put on a new line, so for the mentioned example your file will have content like: @@ -93,9 +95,9 @@ The `.mvn/maven.config` is located in the project's top level `.mvn` directory a ### `.mvn/jvm.config` file: -Starting with Maven 3.3.1+ you can define JVM configuration via `.mvn/jvm.config` file which means you can define the options for your build on a per project base. -This file will become part of your project and will be checked in along with your project. -So no need anymore for `MAVEN_OPTS`, `.mavenrc` files. +Starting with Maven 3.3.1+ you can define JVM configuration via `.mvn/jvm.config` file which means you can define the options for your build on a per project base. +This file will become part of your project and will be checked in along with your project. +So no need anymore for `MAVEN_OPTS`, `.mavenrc` files. So for example if you put the following JVM options into the `.mvn/jvm.config` file @@ -116,3 +118,4 @@ The following guides contain further information to specific configuration aspec * [Configuring a repository mirror](./guides/mini/guide-mirror-settings.html) * [Various Tips for Configuring Maven](./guides/mini/guide-configuring-maven.html) * [Password Encryption](./guides/mini/guide-encryption.html) + diff --git a/content/markdown/developers/conventions/github.md b/content/markdown/developers/conventions/github.md index cf14ee63fe..65a9b4b922 100644 --- a/content/markdown/developers/conventions/github.md +++ b/content/markdown/developers/conventions/github.md @@ -7,7 +7,7 @@ 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 +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 @@ -16,6 +16,7 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> + # Maven GitHub Conventions This document describes how Maven developers and contributors should use GitHub Issues and Pull Request. @@ -55,7 +56,7 @@ Default label configurations are in the [maven-gh-actions-shared](https://github ### Assignee -Committers can assign a GitHub Issue or Pull Request to a specific committer if that person seems +Committers can assign a GitHub Issue or Pull Request to a specific committer if that person seems to be well-placed to address it. ### Reviewers @@ -89,10 +90,11 @@ To assign an issue/PR to component we can use labels, like: `component:name` We use `Milestones` to assign to fix versions. -Milestones are public available so we can use it during voting. +Milestones are public available so we can use it during voting. ## Further Links - [GitHUb Pull requests documentation](https://docs.github.com/en/pull-requests) - [GitHub Issues documentation](https://docs.github.com/en/issues) -- [release-drafter](https://github.com/release-drafter/release-drafter) \ No newline at end of file +- [release-drafter](https://github.com/release-drafter/release-drafter) + diff --git a/content/markdown/developers/conventions/jira.md b/content/markdown/developers/conventions/jira.md index 851b1c91e6..c7cee7b821 100644 --- a/content/markdown/developers/conventions/jira.md +++ b/content/markdown/developers/conventions/jira.md @@ -1,4 +1,5 @@ # Maven JIRA Conventions + + This document describes how Maven developers should use JIRA, our issue management system. ## When To Create a JIRA Issue? @@ -24,10 +26,10 @@ This document describes how Maven developers should use JIRA, our issue manageme This section discusses when to create a JIRA issue versus just committing a change in Git (eventually through a PR). - **Minor changes** such as code reformatting, documentation fixes, etc. that aren't going to impact other users -can be committed without a JIRA issue. + can be committed without a JIRA issue. - **Larger changes** such as bug fixes, API changes, significant refactoring, new classes, and pretty much any change -of more than 100 lines, should have JIRA tickets. + of more than 100 lines, should have JIRA tickets. Creating a JIRA issue and referring it in the commit comments simplifies tracking the changes that happen in a release, using JIRA automatic release notes creation. @@ -73,4 +75,5 @@ The Maven team doesn't use this. Committers can if it helps them. - [JIRA Documentation](https://confluence.atlassian.com/jira064/jira-documentation-720411693.html) - [What is an Issue?](https://confluence.atlassian.com/jira064/what-is-an-issue-720416138.html) -- [What is a project?](https://confluence.atlassian.com/jira064/what-is-a-project-720416135.html) \ No newline at end of file +- [What is a project?](https://confluence.atlassian.com/jira064/what-is-a-project-720416135.html) + diff --git a/content/markdown/developers/mojo-api-specification.md b/content/markdown/developers/mojo-api-specification.md index c1d4afafcb..ec629b98bb 100644 --- a/content/markdown/developers/mojo-api-specification.md +++ b/content/markdown/developers/mojo-api-specification.md @@ -7,7 +7,7 @@ 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 +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 @@ -77,4 +77,5 @@ This section simply gives a listing of pointers for more information. * [Maven Plugin API](/ref/current/maven-plugin-api/apidocs/index.html) -* [MojoDescriptor API](/ref/current/maven-plugin-api/apidocs/org/apache/maven/plugin/descriptor/MojoDescriptor.html) \ No newline at end of file +* [MojoDescriptor API](/ref/current/maven-plugin-api/apidocs/org/apache/maven/plugin/descriptor/MojoDescriptor.html) + diff --git a/content/markdown/developers/release/maven-core-release.md b/content/markdown/developers/release/maven-core-release.md index 88031a7412..df46dd90b2 100644 --- a/content/markdown/developers/release/maven-core-release.md +++ b/content/markdown/developers/release/maven-core-release.md @@ -1,4 +1,5 @@ # Releasing Maven + + Maven differs slightly in its release process due to several extra steps. The goal is to commit candidate release to svn `dev` tree /`$VERSION`. Once the vote has passed, svn move to `release` /`$VERSION`. @@ -57,7 +59,7 @@ Copy the binaries and src-tar.gz with their sha512/asc to the created directorie To produce a release candidate, follow the first seven steps only from the following procedure: -- [Maven Project Common Release Procedure](./maven-project-release-procedure.html) +- [Maven Project Common Release Procedure](./maven-project-release-procedure.html) The version used should be the eventual version with -RC1, -RC2, etc. appended. @@ -71,7 +73,7 @@ Once happy with a release candidate, the full release is performed, with the fin To produce a final release, the same process as for standard projects is followed: -- [Maven Project Common Release Procedure](./maven-project-release-procedure.html) +- [Maven Project Common Release Procedure](./maven-project-release-procedure.html) Below describes the additional steps that need to be taken at the points where the website are updated in those instructions. diff --git a/content/markdown/developers/website/component-reference-documentation-helper.md b/content/markdown/developers/website/component-reference-documentation-helper.md index dc881c9bb2..7e60a7d2bf 100644 --- a/content/markdown/developers/website/component-reference-documentation-helper.md +++ b/content/markdown/developers/website/component-reference-documentation-helper.md @@ -1,4 +1,5 @@ ## Preparing Component Release Documentation + + select component category, then type artifact id and version to generate svn commands: @@ -34,7 +36,7 @@ select component category, then type artifact id and version to generate svn com
  • Doxia Tools
  • others
  • - +

    Component information

    @@ -125,3 +127,4 @@ if (category == "core") { selectCategory(category + '/', category+'-archives/'); } //]]> + diff --git a/content/markdown/docs/3.2.1/release-notes.md b/content/markdown/docs/3.2.1/release-notes.md index 0d15e3d890..4cb2fc4e61 100644 --- a/content/markdown/docs/3.2.1/release-notes.md +++ b/content/markdown/docs/3.2.1/release-notes.md @@ -1,25 +1,25 @@ # Release Notes - Maven 3.2.1 ## Maven 3.2.1 @@ -75,7 +75,7 @@ It is sometimes useful to clip a dependency's transitive dependencies. A depende ### Reactor changes The Maven reactor is now pluggable ([MNG-5578][MNG-5578]). This feature required the introduction of a new custom Guice scope called `@SessionScoped` as we need to inject the `MavenSession` into the reactor right after the creation the `MavenSession` and before the execution of the build. The reactor behaves as a special type of artifact repository that provides the current behaviour users expect when building multi-module projects. New implementations can provide different semantics which can potentially provide new ways for multi-module projects to build, or to fix/add new features like resolving test JARs properly from the reactor. Now that the implementation is pluggable we can always default to the existing behaviour and allow people to try new behavior with a feature toggle. - + The reactor now limits the projects that are exposed internally when `--projects` is used ([MNG-5557][MNG-5557]). What happened previously is that all the projects in the reactor would still be available for resolution even if you restricted the number of projects being built using `--projects`. This behaviour is now explicit: what you specify using `--projects` is what you will build and resolve against, if a project you need is not present in the constrained set the local repository will be consulted. There are cases where you may still want access to the projects that are normally part of the build but not currently being built, and those projects are tracked ([MNG-5582][MNG-5582]) and available in the `MavenSession`. It is also now possible to exclude projects from the reactor when using the `-am` and `-amd` options ([MNG-5230][MNG-5230]). If you select a project to build and its dependents (`-amd`) you can exclude one or more of the dependents with a command like the following: `mvn -amd --projects foo,bar,!dependent-of-bar`. These combined changes above will allow us to make new implementation of the Maven reactor with improved/different behaviour. For example, this could potentially allow you to step into a directory and run Maven and have Maven pick up the projects surrounding the project you're building instead of going to local repository. We can experiment with different implementations and let users toggle between them until we ultimately decide on the right behaviour. Lots of user complain about the behaviour of the reactor and this allows stepwise improvement. @@ -117,3 +117,4 @@ See [complete release notes for all versions][5] [MNG-5576]: https://issues.apache.org/jira/browse/MNG-5576 [MNG-5581]: https://issues.apache.org/jira/browse/MNG-5581 [MNG-5557]: https://issues.apache.org/jira/browse/MNG-5557 + diff --git a/content/markdown/docs/3.2.2/release-notes.md b/content/markdown/docs/3.2.2/release-notes.md index 506e09b957..57abf5a243 100644 --- a/content/markdown/docs/3.2.2/release-notes.md +++ b/content/markdown/docs/3.2.2/release-notes.md @@ -1,25 +1,25 @@ # Release Notes – Maven 3.2.2 ## Maven 3.2.2 @@ -74,34 +74,34 @@ Multiple profile activation conditions are now ANDed instead of ORed. We believe ### Support resolution of Import Scope POMs from Repo that contains a ${parameter} ([MNG-5639][MNG-5639]) -This feature helps support the pattern where many streams of development are setup with an individually sandboxed repository holding specific version of several shared components. A repository configuration might use the pattern ${nexus.baseurl}/content/groups/${stream.name} where the properties are set in settings.xml file. +This feature helps support the pattern where many streams of development are setup with an individually sandboxed repository holding specific version of several shared components. A repository configuration might use the pattern ${nexus.baseurl}/content/groups/${stream.name} where the properties are set in settings.xml file. ### Update maven-plugin-plugin:descriptor default binding from generate-resources phase to process-classes ([MNG-5346][MNG-5346]) Now when you use create plugins that strictly use annotation processing to generate the descriptor, you can avoid the confusing configuration previously required. This is what you typically needed to include in order to run the descriptor generator on compiled classes and avoid errors. ``` - - - - org.apache.maven.plugins - maven-plugin-plugin - ${mavenPluginPluginVersion} - - true - - - - mojo-descriptor - process-classes - - descriptor - - - - - - + + + + org.apache.maven.plugins + maven-plugin-plugin + ${mavenPluginPluginVersion} + + true + + + + mojo-descriptor + process-classes + + descriptor + + + + + + ``` This is no longer required and can be omitted when you use version 3.2+ of the maven-plugin-plugin. @@ -129,5 +129,5 @@ See [complete release notes for all versions][5] [MNG-5452]: https://issues.apache.org/jira/browse/MNG-5452 [MNG-5639]: https://issues.apache.org/jira/browse/MNG-5639 [MNG-5647]: https://issues.apache.org/jira/browse/MNG-5647 - [mvel]: http://mvel.codehaus.org + diff --git a/content/markdown/docs/3.2.3/release-notes.md b/content/markdown/docs/3.2.3/release-notes.md index 461d768d8a..b374862cae 100644 --- a/content/markdown/docs/3.2.3/release-notes.md +++ b/content/markdown/docs/3.2.3/release-notes.md @@ -1,25 +1,25 @@ # Release Notes – Maven 3.2.3 ## Maven 3.2.3 @@ -64,3 +64,4 @@ See [complete release notes for all versions][5] [MNG-5346]: https://issues.apache.org/jira/browse/MNG-5346 [MNG-5452]: https://issues.apache.org/jira/browse/MNG-5452 [MNG-5639]: https://issues.apache.org/jira/browse/MNG-5639 + diff --git a/content/markdown/docs/3.2.5/release-notes.md b/content/markdown/docs/3.2.5/release-notes.md index f063f3ddd8..3fd9eb25e4 100644 --- a/content/markdown/docs/3.2.5/release-notes.md +++ b/content/markdown/docs/3.2.5/release-notes.md @@ -1,25 +1,25 @@ # Release Notes – Maven 3.2.5 ## Maven 3.2.5 @@ -53,3 +53,4 @@ See [complete release notes for all versions][5] [2]: http://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12330189 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.3.1/release-notes.md b/content/markdown/docs/3.3.1/release-notes.md index 2a0cf8ae4a..c7bd8ffe62 100644 --- a/content/markdown/docs/3.3.1/release-notes.md +++ b/content/markdown/docs/3.3.1/release-notes.md @@ -1,25 +1,25 @@ # Release Notes – Maven 3.3.1 ## Overview @@ -89,7 +89,7 @@ The new [Maven 3.3.1 Release is just out](http://mail-archives.apache.org/mod_mb you can define an `.mvn/extensions.xml` file in the project's top level directory which looks like the following: -``` xml +```xml @@ -100,20 +100,20 @@ The new [Maven 3.3.1 Release is just out](http://mail-archives.apache.org/mod_mb ``` -* Now you can simply use an extension by defining the usual maven coordinates - `groupId`, `artifactId`, `version` as any other artifact. Furthermore all - transitive dependencies of those extensions will automatically being downloaded - from your repository. So no need to create a shaded artifact anymore. +* Now you can simply use an extension by defining the usual maven coordinates + `groupId`, `artifactId`, `version` as any other artifact. Furthermore all + transitive dependencies of those extensions will automatically being downloaded + from your repository. So no need to create a shaded artifact anymore. - An other advantage is that the `.mvn/` - directory is located in the root of your Maven project and in conseuqence - is part of your project which means you will check it in along with - your project. So everyone who checks out your project automatically - can use the extensions. + An other advantage is that the `.mvn/` + directory is located in the root of your Maven project and in conseuqence + is part of your project which means you will check it in along with + your project. So everyone who checks out your project automatically + can use the extensions. - One thing is important that the extensions will be resolved from the - pluginRepository. This is important if you have configured the pluginRepository - different from the repository. + One thing is important that the extensions will be resolved from the + pluginRepository. This is important if you have configured the pluginRepository + different from the repository. ### JVM and Command Line Options @@ -152,17 +152,16 @@ The new [Maven 3.3.1 Release is just out](http://mail-archives.apache.org/mod_mb * you don't need to remember of using this options in `MAVEN_OPTS` or switching between different configurations. - ### Plugin Goal Invocation from Command Line - - * Improvement for [Plugin Goal Invocation from command line][MNG-5768] +* Improvement for [Plugin Goal Invocation from command line][MNG-5768] If you call a plugin directly from command line like the following: ``` mvn exec:java ``` + The configuration which is used here can be defined in your pom by using an execution id `default-cli`. ``` @@ -229,20 +228,17 @@ mvn exec:java@second-cli So now you can define more than one configuration for command line executions. - * The Maven team has decided to [drop support for Win9x in launch scripts](https://issues.apache.org/jira/browse/MNG-5776) - at long last. Yeah. - +* The Maven team has decided to [drop support for Win9x in launch scripts](https://issues.apache.org/jira/browse/MNG-5776) + at long last. Yeah. The above release notes have [originally been written by Karl Heinz Marbaise and migrated afterwards to the Apache Maven project](http://blog.soebes.de/blog/2015/03/17/apache-maven-3-dot-3-1-features/). - [0]: ../../download.html [1]: ../../plugins/index.html [2]: http://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12330193 [5]: ../../docs/history.html - [maven-toolchains-plugin]: http://maven.apache.org/plugins/maven-toolchains-plugin/ [MNG-3891]: https://issues.apache.org/jira/browse/MNG-3891 [MNG-5745]: https://issues.apache.org/jira/browse/MNG-5745 @@ -251,3 +247,4 @@ and migrated afterwards to the Apache Maven project](http://blog.soebes.de/blog/ [MNG-5767]: https://issues.apache.org/jira/browse/MNG-5767 [MNG-5768]: https://issues.apache.org/jira/browse/MNG-5768 [MNG-5780]: https://issues.apache.org/jira/browse/MNG-5780 + diff --git a/content/markdown/docs/3.3.3/release-notes.md b/content/markdown/docs/3.3.3/release-notes.md index ac401cec46..5fb0978f4e 100644 --- a/content/markdown/docs/3.3.3/release-notes.md +++ b/content/markdown/docs/3.3.3/release-notes.md @@ -1,25 +1,25 @@ # Release Notes – Maven 3.3.3 ## Maven 3.3.3 @@ -53,3 +53,4 @@ See [complete release notes for all versions][5] [2]: http://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12332054 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.3.9/release-notes.md b/content/markdown/docs/3.3.9/release-notes.md index 2740c8e271..0719c9242b 100644 --- a/content/markdown/docs/3.3.9/release-notes.md +++ b/content/markdown/docs/3.3.9/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.3.9 @@ -38,142 +38,138 @@ We hope you enjoy using Maven! If you have any questions, please consult: - the maven-user mailing list: [http://maven.apache.org/mailing-lists.html](/mailing-lists.html) - the reference documentation: [http://maven.apache.org/ref/3.3.9/](/ref/3.3.9/) - Reporters and Contributors of this release ------------------------------------------ Bugs: - * [MNG-5297] - contributor: Joseph Walton - * [MNG-5721] - reporter/contributor Martin Schäf - * [MNG-5786] - reporter Stephan Schroevers - * [MNG-5787] - reporter Christian Schlichtherle - * [MNG-5796] - reporter Brandon Enochs - * [MNG-5812] - contributor tssp - * [MNG-5816] - contributor tssp - * [MNG-5858] - contributor Dave Syer - * [MNG-5877] - contributor Joseph Walton; reporter Anders Forsell - * [MNG-5882] - contributor Ben Caradoc-Davies - * [MNG-5884] - contributor Stephen Kitt - * [MNG-5886] - reporter Shubham Chaurasia - * [MNG-5891] - reporter Keith Turner - * [MNG-5898] - reporter Jonathan Radon +* [MNG-5297] - contributor: Joseph Walton +* [MNG-5721] - reporter/contributor Martin Schäf +* [MNG-5786] - reporter Stephan Schroevers +* [MNG-5787] - reporter Christian Schlichtherle +* [MNG-5796] - reporter Brandon Enochs +* [MNG-5812] - contributor tssp +* [MNG-5816] - contributor tssp +* [MNG-5858] - contributor Dave Syer +* [MNG-5877] - contributor Joseph Walton; reporter Anders Forsell +* [MNG-5882] - contributor Ben Caradoc-Davies +* [MNG-5884] - contributor Stephen Kitt +* [MNG-5886] - reporter Shubham Chaurasia +* [MNG-5891] - reporter Keith Turner +* [MNG-5898] - reporter Jonathan Radon Improvements: - * [MNG-5805] - contributor Anton Tanasenko - * [MNG-5844] - contributor Tang Xinye - * [MNG-5871] - make url inheritance algorithm more visible - * [MNG-5923] - reporter/contributor: Stuart McCulloch - * [MNG-5924] - reporter/contributor: Stuart McCulloch +* [MNG-5805] - contributor Anton Tanasenko +* [MNG-5844] - contributor Tang Xinye +* [MNG-5871] - make url inheritance algorithm more visible +* [MNG-5923] - reporter/contributor: Stuart McCulloch +* [MNG-5924] - reporter/contributor: Stuart McCulloch Many thanks to all reporters and contributors and for their time and support. Improvements ------------ - * The `par` lifecycle has been removed from the default life cycle bindings and the maven-ejb3-plugin - has been removed from default bindings, cause it does not exist [MNG-5892][MNG-5892], [MNG-5894][MNG-5894]. - - * The default bindings defined two different versions for the [maven-resources-plugin][maven-resources-plugin] - which has been fixed by [MNG-5893][MNG-5893]. +* The `par` lifecycle has been removed from the default life cycle bindings and the maven-ejb3-plugin + has been removed from default bindings, cause it does not exist [MNG-5892][MNG-5892], [MNG-5894][MNG-5894]. - * Switch to official [Guice](https://github.com/google/guice/wiki/Motivation) 4.0, upgrade to - [Eclipse/Sisu](https://www.eclipse.org/sisu/) 0.3.2 has been done with [MNG-5923][MNG-5923] and [MNG-5924][MNG-5924]. +* The default bindings defined two different versions for the [maven-resources-plugin][maven-resources-plugin] + which has been fixed by [MNG-5893][MNG-5893]. - * Several areas of Maven Core have been changed to use - [Commons Lang](https://commons.apache.org/proper/commons-lang/)'s Validate to intercept invalid - input [MNG-5649][MNG-5649]. +* Switch to official [Guice](https://github.com/google/guice/wiki/Motivation) 4.0, upgrade to + [Eclipse/Sisu](https://www.eclipse.org/sisu/) 0.3.2 has been done with [MNG-5923][MNG-5923] and [MNG-5924][MNG-5924]. - * Upgrade Java minimum version prerequisite from Java 6 to Java 7 [MNG-5780][MNG-5780]. +* Several areas of Maven Core have been changed to use + [Commons Lang](https://commons.apache.org/proper/commons-lang/)'s Validate to intercept invalid + input [MNG-5649][MNG-5649]. - * Custom packaging types: configuring DefaultLifecycleMapping mojo executions [MNG-5805][MNG-5805]. +* Upgrade Java minimum version prerequisite from Java 6 to Java 7 [MNG-5780][MNG-5780]. - * Disallow the programmatic injection of project dependencies [MNG-5818][MNG-5818]. +* Custom packaging types: configuring DefaultLifecycleMapping mojo executions [MNG-5805][MNG-5805]. - * Close IO streams in finally or try-with-resource statement [MNG-5844][MNG-5844]. +* Disallow the programmatic injection of project dependencies [MNG-5818][MNG-5818]. - * Make url inheritance algorithm more visible [MNG-5871][MNG-5871]. +* Close IO streams in finally or try-with-resource statement [MNG-5844][MNG-5844]. - * Update used [Modello](https://codehaus-plexus.github.io/modello/) version from 1.8.1 to 1.8.3 [MNG-5888][MNG-5888]. +* Make url inheritance algorithm more visible [MNG-5871][MNG-5871]. - * Maven build does not work with Maven 2.2.1 [MNG-5905][MNG-5905]. +* Update used [Modello](https://codehaus-plexus.github.io/modello/) version from 1.8.1 to 1.8.3 [MNG-5888][MNG-5888]. - * Use canonical name for UTC timezone [MNG-5906][MNG-5906]. +* Maven build does not work with Maven 2.2.1 [MNG-5905][MNG-5905]. - * Upgrade [maven-parent](/pom/maven/) to version 27 [MNG-5911][MNG-5911]. +* Use canonical name for UTC timezone [MNG-5906][MNG-5906]. - * Upgrade [Wagon](/wagon/) version to 2.10 [MNG-5915][MNG-5915]. +* Upgrade [maven-parent](/pom/maven/) to version 27 [MNG-5911][MNG-5911]. - * Upgraded to [plexus-component-*](https://codehaus-plexus.github.io/plexus-containers/) 1.6 that uses - [asm](http://asm.ow2.org/) 5.x [MNG-5921][MNG-5921]. +* Upgrade [Wagon](/wagon/) version to 2.10 [MNG-5915][MNG-5915]. - * Upgrade [plexus-utils](https://codehaus-plexus.github.io/plexus-utils/) to 3.0.22 to support `combine.id` as configuration attribute for Map merging [MNG-5922][MNG-5922]. +* Upgraded to [plexus-component-*](https://codehaus-plexus.github.io/plexus-containers/) 1.6 that uses + [asm](http://asm.ow2.org/) 5.x [MNG-5921][MNG-5921]. - * Update [animal-sniffer-maven-plugin](https://www.mojohaus.org/animal-sniffer/animal-sniffer-maven-plugin/) to 1.14. MANIMALSNIFFER-49 required when building with JDK9 [MNG-5925][MNG-5925]. +* Upgrade [plexus-utils](https://codehaus-plexus.github.io/plexus-utils/) to 3.0.22 to support `combine.id` as configuration attribute for Map merging [MNG-5922][MNG-5922]. +* Update [animal-sniffer-maven-plugin](https://www.mojohaus.org/animal-sniffer/animal-sniffer-maven-plugin/) to 1.14. MANIMALSNIFFER-49 required when building with JDK9 [MNG-5925][MNG-5925]. Bugs ---- - * Moving from Maven 3.0.5 to 3.3.3 breaks plugins with some dependencies on the classpath. - This has been fixed with [MNG-5787][MNG-5787]. - - * The Cygwin Shell related handling of the `MAVEN_PROJECTBASEDIR` has been fixed - with [MNG-5812][MNG-5812]. +* Moving from Maven 3.0.5 to 3.3.3 breaks plugins with some dependencies on the classpath. + This has been fixed with [MNG-5787][MNG-5787]. - * The scripts to call Maven has introduced a bug related to the handling of the - `MAVEN_OPTS` and debugging options which has been fixed by [MNG-5813][MNG-5813]. +* The Cygwin Shell related handling of the `MAVEN_PROJECTBASEDIR` has been fixed + with [MNG-5812][MNG-5812]. - * Since Maven 3.3.1 it is possible to have configurations stored on a per project base in the - `.mvn` directory of the project. There you can use the `maven.config` - file to store command line options instead of repeating them every time you call Maven. - In cases where this file has been empty Maven ended with a failure. This has been fixed - with [MNG-5816][MNG-5816]. +* The scripts to call Maven has introduced a bug related to the handling of the + `MAVEN_OPTS` and debugging options which has been fixed by [MNG-5813][MNG-5813]. - * The handling of the relativePath in a parent has been fixed related to the case - that the parent has the same groupId:artifactId but a different version. In this - case the resolution must be done against the repository. - This has been fixed by [MNG-5840][MNG-5840]. +* Since Maven 3.3.1 it is possible to have configurations stored on a per project base in the + `.mvn` directory of the project. There you can use the `maven.config` + file to store command line options instead of repeating them every time you call Maven. + In cases where this file has been empty Maven ended with a failure. This has been fixed + with [MNG-5816][MNG-5816]. - * In cases where you start Maven in the root of a windows drive Maven will fail. - This has been fixed by [MNG-5796][MNG-5796]. +* The handling of the relativePath in a parent has been fixed related to the case + that the parent has the same groupId:artifactId but a different version. In this + case the resolution must be done against the repository. + This has been fixed by [MNG-5840][MNG-5840]. - * The `` elements is intended for [buildtime checking but not for runtime checks][MNG-4840] - which should be left to [maven-enforcer-plugin][maven-enforcer-plugin]. - This has not been documented accordingly. This has been done with [MNG-5297][MNG-5297]. +* In cases where you start Maven in the root of a windows drive Maven will fail. + This has been fixed by [MNG-5796][MNG-5796]. - * In situations like this: `mvn -Dtest=\"anton\" clean package` the trailing quote - is stripped away which could cause problems. This has been fixed with [MNG-5681][MNG-5681]. +* The `` elements is intended for [buildtime checking but not for runtime checks][MNG-4840] + which should be left to [maven-enforcer-plugin][maven-enforcer-plugin]. + This has not been documented accordingly. This has been done with [MNG-5297][MNG-5297]. - * Possible NullPointerException in org.apache.maven.repository.MetadataResolutionResult - has been fixed with [MNG-5721]. +* In situations like this: `mvn -Dtest=\"anton\" clean package` the trailing quote + is stripped away which could cause problems. This has been fixed with [MNG-5681][MNG-5681]. - * There had been several issues with the `mvn` script which are for example - wrong locating the `.mvn` directory, nonportable shell constructs, wrongly setting - 'maven.multiModuleProjectDirectory' variable or directories which contain spaces. Those - issues have been fixed [MNG-5786][MNG-5786], [MNG-5858][MNG-5858], - [MNG-5882][MNG-5882] and [MNG-5884][MNG-5884]. +* Possible NullPointerException in org.apache.maven.repository.MetadataResolutionResult + has been fixed with [MNG-5721]. - * Broken link of 'Building Maven' in README.md has been fixed by [MNG-5886][MNG-5886]. +* There had been several issues with the `mvn` script which are for example + wrong locating the `.mvn` directory, nonportable shell constructs, wrongly setting + 'maven.multiModuleProjectDirectory' variable or directories which contain spaces. Those + issues have been fixed [MNG-5786][MNG-5786], [MNG-5858][MNG-5858], + [MNG-5882][MNG-5882] and [MNG-5884][MNG-5884]. - * [maven-aether-provider][maven-aether-provider]/[maven-compat][maven-compat] - does not always generate snapshot versions using Gregorian calendar year - fixed in [MNG-5877][MNG-5877] +* Broken link of 'Building Maven' in README.md has been fixed by [MNG-5886][MNG-5886]. - * Log file command line option description contains an extra word has been fixed by [MNG-5891][MNG-5891] +* [maven-aether-provider][maven-aether-provider]/[maven-compat][maven-compat] + does not always generate snapshot versions using Gregorian calendar year + fixed in [MNG-5877][MNG-5877] - * org.apache.maven.repository.internal.RemoteSnapshotMetadataTest fails to start at midnight fixed with - [MNG-5907][MNG-5907]. +* Log file command line option description contains an extra word has been fixed by [MNG-5891][MNG-5891] - * Multi-module build with ear fails to resolve war in 3.3.3 fixed in [MNG-5898][MNG-5898]. +* org.apache.maven.repository.internal.RemoteSnapshotMetadataTest fails to start at midnight fixed with + [MNG-5907][MNG-5907]. +* Multi-module build with ear fails to resolve war in 3.3.3 fixed in [MNG-5898][MNG-5898]. Task ---- - * Update [Modello site url](https://codehaus-plexus.github.io/modello/) [MNG-5887][MNG-5887]. - +* Update [Modello site url](https://codehaus-plexus.github.io/modello/) [MNG-5887][MNG-5887]. The full list of changes can be found in our [issue management system][4]. @@ -229,3 +225,4 @@ See [complete release notes for all versions][5] [MNG-5923]: https://issues.apache.org/jira/browse/MNG-5923 [MNG-5924]: https://issues.apache.org/jira/browse/MNG-5924 [MNG-5925]: https://issues.apache.org/jira/browse/MNG-5925 + diff --git a/content/markdown/docs/3.5.0-alpha-1/release-notes.md b/content/markdown/docs/3.5.0-alpha-1/release-notes.md index e522328e0c..e44cab65bd 100644 --- a/content/markdown/docs/3.5.0-alpha-1/release-notes.md +++ b/content/markdown/docs/3.5.0-alpha-1/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.5.0-alpha-1 @@ -49,7 +49,7 @@ We hope you enjoy using Maven! If you have any questions, please consult: The following issues were identified during release testing of this _ALPHA_ release but have not been deemed as release blockers: * [MNG-6177] The `--file` and `-f` option to specify a `pom.xml` to use does not work if the path includes characters that need quoting such as whitespace or `&`. -* [MNG-6115] If Maven is installed in a writable location, every build will create a new `lib/ext/jansi-....` file. +* [MNG-6115] If Maven is installed in a writable location, every build will create a new `lib/ext/jansi-....` file. ## Why not Maven 3.4.0? @@ -61,29 +61,29 @@ The migration of the code between the two foundations took longer than expected In order to refocus on the original intent for 3.4.0, the decision was taken to revert the Maven core history to the point of the 3.3.9 release and merge in the desired changes one at a time. -Because there had been a lot of communication about different features being delivered and bugs fixed in Maven 3.4.0 and the new history may not contain them in the first release, the decision was taken to forever burn the 3.4.x release line. +Because there had been a lot of communication about different features being delivered and bugs fixed in Maven 3.4.0 and the new history may not contain them in the first release, the decision was taken to forever burn the 3.4.x release line. More detail on this decision can be read in the [mailing list archive](http://www.mail-archive.com/dev@maven.apache.org/msg112103.html). ## Reporters and Contributors of this release -Bugs: +Bugs: - * [MNG-5963] reporter: Larry Singer - * [MNG-5962] reporter/contributor: Miriam Lee - * [MNG-5961] reporter: Mike Drob - * [MNG-5958] reporter: Meytal Genah, contributor: Anton Tanasenko - * [MNG-5852] reporter: Jeffrey Alexander - * [MNG-5823] reporter: Tobias Oberlies - * [MNG-5815] reporter: Peter Kjær Guldbæk - * [MNG-5368] reporter: Andrew Haines +* [MNG-5963] reporter: Larry Singer +* [MNG-5962] reporter/contributor: Miriam Lee +* [MNG-5961] reporter: Mike Drob +* [MNG-5958] reporter: Meytal Genah, contributor: Anton Tanasenko +* [MNG-5852] reporter: Jeffrey Alexander +* [MNG-5823] reporter: Tobias Oberlies +* [MNG-5815] reporter: Peter Kjær Guldbæk +* [MNG-5368] reporter: Andrew Haines Improvements: - * [MNG-6030] reporter: Andriy contributor: Andriy - * [MNG-5934] reporter/contributor: Alex Henrie - * [MNG-5883] reporter: Ben Caradoc-Davies - * [MNG-3507] contributors: Jason Dillon, Sébastian Le Merdy +* [MNG-6030] reporter: Andriy contributor: Andriy +* [MNG-5934] reporter/contributor: Alex Henrie +* [MNG-5883] reporter: Ben Caradoc-Davies +* [MNG-3507] contributors: Jason Dillon, Sébastian Le Merdy Many thanks to all reporters and contributors for their time and support. @@ -93,143 +93,138 @@ Thank you also for your time and feedback. ## Overview about the changes - * The most obvious change you may encounter is that the console output - has colors now [MNG-3507], [MNG-6093]. +* The most obvious change you may encounter is that the console output + has colors now [MNG-3507], [MNG-6093]. - * The new `project.directory` special property adds support in every calculated URLs (project, SCM, site) - for module directory name that does not match artifactId [MNG-5878] - - * The `JAVA_HOME` discovery has been reduced to simply check if `JAVA_HOME` is set - or not then trying to discover via `which java`, nothing more [MNG-6003]. +* The new `project.directory` special property adds support in every calculated URLs (project, SCM, site) + for module directory name that does not match artifactId [MNG-5878] - * The build bootstrapping support via Apache Ant has been removed. You can now only bootstrap Maven - build with a previous version of Maven, but not with Ant any more [MNG-5904]. +* The `JAVA_HOME` discovery has been reduced to simply check if `JAVA_HOME` is set + or not then trying to discover via `which java`, nothing more [MNG-6003]. - * Based on problems in using `M2_HOME` related to different Maven versions installed and - to simplify things, the usage of `M2_HOME` has been removed and is not - supported any more [MNG-5823], [MNG-5836], [MNG-5607]. +* The build bootstrapping support via Apache Ant has been removed. You can now only bootstrap Maven + build with a previous version of Maven, but not with Ant any more [MNG-5904]. - * Important change for windows users: The usage of `%HOME%` has been replaced - with `%USERPROFILE%` [MNG-6001] +* Based on problems in using `M2_HOME` related to different Maven versions installed and + to simplify things, the usage of `M2_HOME` has been removed and is not + supported any more [MNG-5823], [MNG-5836], [MNG-5607]. - * Several issues have been reported and fixed related to the `mvn` script either - for Unix/Linux/Cygwin/Solaris or for Windows - [MNG-5815], [MNG-5852], [MNG-5963], [MNG-6022]. +* Important change for windows users: The usage of `%HOME%` has been replaced + with `%USERPROFILE%` [MNG-6001] - * In Maven 3.3.9, we have removed bindings for maven-ejb3-plugin because it - does not exist. We follow-up and removed the artifact handler for `ejb3` - and the `par` lifecycle [MNG-6014], [MNG-6017]. +* Several issues have been reported and fixed related to the `mvn` script either + for Unix/Linux/Cygwin/Solaris or for Windows + [MNG-5815], [MNG-5852], [MNG-5963], [MNG-6022]. - * In previous Maven versions, there had been a larger problem related to - memory usage in case of very large reactors (200-300 modules or more) - which caused failures with out of memeory exceptions or the need to increase - the memory settings. This problem has been fixed with [MNG-6030]. +* In Maven 3.3.9, we have removed bindings for maven-ejb3-plugin because it + does not exist. We follow-up and removed the artifact handler for `ejb3` + and the `par` lifecycle [MNG-6014], [MNG-6017]. - * If you have defined a property within the `.mvn/maven.config` file, - it was not possible to overwrite the property via command line. - This has been fixed with [MNG-6078][MNG-6078]. +* In previous Maven versions, there had been a larger problem related to + memory usage in case of very large reactors (200-300 modules or more) + which caused failures with out of memeory exceptions or the need to increase + the memory settings. This problem has been fixed with [MNG-6030]. - * If you have are using `..` for a non - maven-plugin project, you will get a WARNING which looks like this: +* If you have defined a property within the `.mvn/maven.config` file, + it was not possible to overwrite the property via command line. + This has been fixed with [MNG-6078][MNG-6078]. +* If you have are using `..` for a non + maven-plugin project, you will get a WARNING which looks like this: ``` [INFO] Scanning for projects... [WARNING] The project org.apache.maven:maven:pom:3.5.0-SNAPSHOT uses prerequisites which is only intended for maven-plugin projects but not for non maven-plugin projects. For such purposes you should use the maven-enforcer-plugin. See https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html ``` - This will tell you to use maven-enforcer-plugin to check the version of Maven - you are expecting to build your project with, instead of using `prerequisites` - [MNG-5297], [MNG-6092]. +This will tell you to use maven-enforcer-plugin to check the version of Maven +you are expecting to build your project with, instead of using `prerequisites` +[MNG-5297], [MNG-6092]. - * Replaced Eclipse Aether with [Maven Resolver][maven-resolver] - [MNG-6110], [MNG-6140]. +* Replaced Eclipse Aether with [Maven Resolver][maven-resolver] + [MNG-6110], [MNG-6140]. Improvements: - Bugs: - * [MNG-5297] - Site should tell 'prerequisites.maven is deprecated' - * [MNG-5368] - UnsupportedOperationException thrown when version range is not correct in dependencyManagement definitions - * [MNG-5629] - ClosedChannelException from DefaultUpdateCheckManager.read - * [MNG-5815] - "mvn.cmd" does not indicate failure properly when using "&&" - * [MNG-5823] - mvnDebug doesn't work with M2_HOME with spaces - missing quotes - * [MNG-5829] - mvn shell script fails with syntax error on Solaris 10 - * [MNG-5836] - logging config is overridden by $M2_HOME/lib/ext/*.jar - * [MNG-5852] - mvn shell script invokes /bin/sh but requires Bash functions - * [MNG-5958] - java.lang.String cannot be cast to org.apache.maven.lifecycle.mapping.LifecyclePhase - * [MNG-5961] - Maven possibly not aware of log4j2 - * [MNG-5962] - mvn.cmd fails when the current directory has spaces in between - * [MNG-5963] - mvn.cmd does not return ERROR_CODE - * [MNG-6022] - mvn.cmd fails if directory contains an ampersand (&) - * [MNG-6053] - Unsafe System Properties copy in MavenRepositorySystemUtils, causing NPEs - * [MNG-6105] - properties.internal.SystemProperties.addSystemProperties() is not really thread-safe - * [MNG-6109] - PluginDescriptor doesn't read since value of parameter - * [MNG-6117] - ${session.parallel} not correctly set - * [MNG-6144] - DefaultWagonManagerTest#testGetMissingJarForced() passed incorrect value - * [MNG-6166] - mvn dependency:go-offline fails due to missing transitive dependency jdom:jdom:jar:1.1 - * [MNG-6171] - REGRESSION: WARNING about usage of a non threadsafe marked plugin is not showed anymore - * [MNG-6172] - Precedence of command-line system property options has changed +* [MNG-5297] - Site should tell 'prerequisites.maven is deprecated' +* [MNG-5368] - UnsupportedOperationException thrown when version range is not correct in dependencyManagement definitions +* [MNG-5629] - ClosedChannelException from DefaultUpdateCheckManager.read +* [MNG-5815] - "mvn.cmd" does not indicate failure properly when using "&&" +* [MNG-5823] - mvnDebug doesn't work with M2_HOME with spaces - missing quotes +* [MNG-5829] - mvn shell script fails with syntax error on Solaris 10 +* [MNG-5836] - logging config is overridden by $M2_HOME/lib/ext/*.jar +* [MNG-5852] - mvn shell script invokes /bin/sh but requires Bash functions +* [MNG-5958] - java.lang.String cannot be cast to org.apache.maven.lifecycle.mapping.LifecyclePhase +* [MNG-5961] - Maven possibly not aware of log4j2 +* [MNG-5962] - mvn.cmd fails when the current directory has spaces in between +* [MNG-5963] - mvn.cmd does not return ERROR_CODE +* [MNG-6022] - mvn.cmd fails if directory contains an ampersand (&) +* [MNG-6053] - Unsafe System Properties copy in MavenRepositorySystemUtils, causing NPEs +* [MNG-6105] - properties.internal.SystemProperties.addSystemProperties() is not really thread-safe +* [MNG-6109] - PluginDescriptor doesn't read since value of parameter +* [MNG-6117] - ${session.parallel} not correctly set +* [MNG-6144] - DefaultWagonManagerTest#testGetMissingJarForced() passed incorrect value +* [MNG-6166] - mvn dependency:go-offline fails due to missing transitive dependency jdom:jdom:jar:1.1 +* [MNG-6171] - REGRESSION: WARNING about usage of a non threadsafe marked plugin is not showed anymore +* [MNG-6172] - Precedence of command-line system property options has changed Dependency upgrade: - * [MNG-5967] - Dependency updates - * [MNG-6110] - Upgrade Aether to Maven Resolver +* [MNG-5967] - Dependency updates +* [MNG-6110] - Upgrade Aether to Maven Resolver Improvements: - * [MNG-5579] - Unify error output/check logic from shell and batch scripts - * [MNG-5607] - Don't use M2_HOME in mvn shell/command scripts anymore - * [MNG-5883] - Silence unnecessary legacy local repository warning - * [MNG-5889] - .mvn directory should be picked when using --file - * [MNG-5904] - Remove the whole Ant build - * [MNG-5931] - Fixing documentation - * [MNG-5934] - String handling issues identified by PMD - * [MNG-5946] - Fix links etc. in README.txt which is part of the delivery - * [MNG-5968] - Default plugin version updates - * [MNG-5975] - Use Java 7's SimpleDateFormat in CLIReportingUtils#formatTimestamp - * [MNG-5977] - Improve output readability of our MavenTransferListener implementations - * [MNG-5993] - Confusing error message in case of missing/empty artifactId and version in pluginManagement - * [MNG-6001] - Replace %HOME% with %USERPROFILE% in mvn.cmd - * [MNG-6003] - Drastically reduce JAVA_HOME discovery code - * [MNG-6014] - Removing ArtifactHandler for ejb3 - * [MNG-6017] - Removing ArtifactHandler for par LifeCycle - * [MNG-6030] - ReactorModelCache do not used effectively after maven version 3.0.5 which cause a large memory footprint - * [MNG-6032] - WARNING during build based on absolute path in assembly-descriptor. - * [MNG-6068] - Document default scope compile in pom XSD and reference documentation - * [MNG-6078] - Can't overwrite properties which have been defined in .mvn/maven.config - * [MNG-6081] - Log refactoring - Method Invocation Replaced By Variable - * [MNG-6102] - Introduce ${maven.conf} in m2.conf - * [MNG-6145] - Remove non-existent m2 include in component.xml - * [MNG-6146] - Several small stylistic and spelling improvements to code and documentation - * [MNG-6147] - MetadataResolutionResult#getGraph() contains duplicate if clause - * [MNG-6150] - Javadoc improvements for 3.5.0 - * [MNG-6163] - Introduce CLASSWORLDS_JAR in shell startup scripts - * [MNG-6165] - Deprecate and replace incorrectly spelled public API +* [MNG-5579] - Unify error output/check logic from shell and batch scripts +* [MNG-5607] - Don't use M2_HOME in mvn shell/command scripts anymore +* [MNG-5883] - Silence unnecessary legacy local repository warning +* [MNG-5889] - .mvn directory should be picked when using --file +* [MNG-5904] - Remove the whole Ant build +* [MNG-5931] - Fixing documentation +* [MNG-5934] - String handling issues identified by PMD +* [MNG-5946] - Fix links etc. in README.txt which is part of the delivery +* [MNG-5968] - Default plugin version updates +* [MNG-5975] - Use Java 7's SimpleDateFormat in CLIReportingUtils#formatTimestamp +* [MNG-5977] - Improve output readability of our MavenTransferListener implementations +* [MNG-5993] - Confusing error message in case of missing/empty artifactId and version in pluginManagement +* [MNG-6001] - Replace %HOME% with %USERPROFILE% in mvn.cmd +* [MNG-6003] - Drastically reduce JAVA_HOME discovery code +* [MNG-6014] - Removing ArtifactHandler for ejb3 +* [MNG-6017] - Removing ArtifactHandler for par LifeCycle +* [MNG-6030] - ReactorModelCache do not used effectively after maven version 3.0.5 which cause a large memory footprint +* [MNG-6032] - WARNING during build based on absolute path in assembly-descriptor. +* [MNG-6068] - Document default scope compile in pom XSD and reference documentation +* [MNG-6078] - Can't overwrite properties which have been defined in .mvn/maven.config +* [MNG-6081] - Log refactoring - Method Invocation Replaced By Variable +* [MNG-6102] - Introduce ${maven.conf} in m2.conf +* [MNG-6145] - Remove non-existent m2 include in component.xml +* [MNG-6146] - Several small stylistic and spelling improvements to code and documentation +* [MNG-6147] - MetadataResolutionResult#getGraph() contains duplicate if clause +* [MNG-6150] - Javadoc improvements for 3.5.0 +* [MNG-6163] - Introduce CLASSWORLDS_JAR in shell startup scripts +* [MNG-6165] - Deprecate and replace incorrectly spelled public API New Feature: - * [MNG-3507] - ANSI color logging for improved output visibility - * [MNG-5878] - add support for module name != artifactId in every calculated URLs (project, SCM, site): special project.directory property - * [MNG-6093] - create a slf4j-simple provider extension that supports level color rendering Task - * [MNG-5954] - Remove outdated maven-embedder/src/main/resources/META-INF/MANIFEST.MF - * [MNG-6106] - Remove maven.home default value setter from m2.conf - * [MNG-6136] - Upgrade Maven Wagon from 2.10 to 2.12 - * [MNG-6137] - Clean up duplicate dependencies caused by incomplete Wagon HTTP Provider exclusions - * [MNG-6138] - Remove obsolete message_*.properties form maven-core - * [MNG-6140] - update documentation's dependency graph with resolver + resolver-provider + slf4j-provider - * [MNG-6151] - Force Push master from 737de43e392fc15a0ce366db98d70aa18b3f6c03 - * [MNG-6152] - Add a Jenkinsfile so that builds.apache.org can use multibranch pipeline +* [MNG-3507] - ANSI color logging for improved output visibility +* [MNG-5878] - add support for module name != artifactId in every calculated URLs (project, SCM, site): special project.directory property +* [MNG-6093] - create a slf4j-simple provider extension that supports level color rendering Task +* [MNG-5954] - Remove outdated maven-embedder/src/main/resources/META-INF/MANIFEST.MF +* [MNG-6106] - Remove maven.home default value setter from m2.conf +* [MNG-6136] - Upgrade Maven Wagon from 2.10 to 2.12 +* [MNG-6137] - Clean up duplicate dependencies caused by incomplete Wagon HTTP Provider exclusions +* [MNG-6138] - Remove obsolete message_*.properties form maven-core +* [MNG-6140] - update documentation's dependency graph with resolver + resolver-provider + slf4j-provider +* [MNG-6151] - Force Push master from 737de43e392fc15a0ce366db98d70aa18b3f6c03 +* [MNG-6152] - Add a Jenkinsfile so that builds.apache.org can use multibranch pipeline Wishes: - * [MNG-2199] - Support version ranges in parent elements - * [MNG-6088] - after forked execution success, add an empty line - * [MNG-6092] - warn if prerequisites.maven is used for non-plugin projects - - - +* [MNG-2199] - Support version ranges in parent elements +* [MNG-6088] - after forked execution success, add an empty line +* [MNG-6092] - warn if prerequisites.maven is used for non-plugin projects The full list of changes can be found in our [issue management system][4]. @@ -247,7 +242,6 @@ See [complete release notes for all versions][5] [maven-aether-provider]: /ref/3.5.0-alpha-1/maven-aether-provider/ [maven-compat]: /ref/3.5.0-alpha-1/maven-compat/ [maven-resolver]: /resolver/ - [MNG-2199]: https://issues.apache.org/jira/browse/MNG-2199 [MNG-3507]: https://issues.apache.org/jira/browse/MNG-3507 [MNG-5297]: https://issues.apache.org/jira/browse/MNG-5297 @@ -315,3 +309,4 @@ See [complete release notes for all versions][5] [MNG-6171]: https://issues.apache.org/jira/browse/MNG-6171 [MNG-6172]: https://issues.apache.org/jira/browse/MNG-6172 [MNG-6177]: https://issues.apache.org/jira/browse/MNG-6177 + diff --git a/content/markdown/docs/3.5.0-beta-1/release-notes.md b/content/markdown/docs/3.5.0-beta-1/release-notes.md index 0f8bc505be..83f66e3ce9 100644 --- a/content/markdown/docs/3.5.0-beta-1/release-notes.md +++ b/content/markdown/docs/3.5.0-beta-1/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.5.0-beta-1 @@ -183,99 +183,52 @@ The full list of changes can be found in our [issue management system][4]. See [complete release notes for all versions][5] [0]: ../../download.html - [1]: ../../plugins/index.html - [2]: http://maven.apache.org/ - [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12339664&styleName=Text - [5]: ../../docs/history.html - [maven-enforcer-plugin]: /enforcer/maven-enforcer-plugin/ - [maven-resources-plugin]: /enforcer/maven-resources-plugin/ - [maven-aether-provider]: /ref/3.5.0-alpha-1/maven-aether-provider/ - [maven-compat]: /ref/3.5.0-alpha-1/maven-compat/ - [maven-resolver]: /resolver/ - [MNG-3507]: https://issues.apache.org/jira/browse/MNG-3507 - [MNG-5607]: https://issues.apache.org/jira/browse/MNG-5607 - [MNG-5297]: https://issues.apache.org/jira/browse/MNG-5297 - [MNG-5815]: https://issues.apache.org/jira/browse/MNG-5815 - [MNG-5823]: https://issues.apache.org/jira/browse/MNG-5823 - [MNG-5836]: https://issues.apache.org/jira/browse/MNG-5836 - [MNG-5852]: https://issues.apache.org/jira/browse/MNG-5852 - [MNG-5878]: https://issues.apache.org/jira/browse/MNG-5878 - [MNG-5895]: https://issues.apache.org/jira/browse/MNG-5895 - [MNG-5904]: https://issues.apache.org/jira/browse/MNG-5904 - [MNG-5963]: https://issues.apache.org/jira/browse/MNG-5963 - [MNG-6001]: https://issues.apache.org/jira/browse/MNG-6001 - [MNG-6003]: https://issues.apache.org/jira/browse/MNG-6003 - [MNG-6014]: https://issues.apache.org/jira/browse/MNG-6014 - [MNG-6017]: https://issues.apache.org/jira/browse/MNG-6017 - [MNG-6022]: https://issues.apache.org/jira/browse/MNG-6022 - [MNG-6030]: https://issues.apache.org/jira/browse/MNG-6030 - [MNG-6057]: https://issues.apache.org/jira/browse/MNG-6057 - [MNG-6078]: https://issues.apache.org/jira/browse/MNG-6078 - [MNG-6090]: https://issues.apache.org/jira/browse/MNG-6090 - [MNG-6092]: https://issues.apache.org/jira/browse/MNG-6092 - [MNG-6093]: https://issues.apache.org/jira/browse/MNG-6093 - [MNG-6110]: https://issues.apache.org/jira/browse/MNG-6110 - [MNG-6115]: https://issues.apache.org/jira/browse/MNG-6115 - [MNG-6140]: https://issues.apache.org/jira/browse/MNG-6140 - [MNG-6170]: https://issues.apache.org/jira/browse/MNG-6170 - [MNG-6173]: https://issues.apache.org/jira/browse/MNG-6173 - [MNG-6176]: https://issues.apache.org/jira/browse/MNG-6176 - [MNG-6177]: https://issues.apache.org/jira/browse/MNG-6177 - [MNG-6179]: https://issues.apache.org/jira/browse/MNG-6179 - [MNG-6180]: https://issues.apache.org/jira/browse/MNG-6180 - [MNG-6181]: https://issues.apache.org/jira/browse/MNG-6181 - [MNG-6182]: https://issues.apache.org/jira/browse/MNG-6182 - [MNG-6183]: https://issues.apache.org/jira/browse/MNG-6183 - [MNG-6189]: https://issues.apache.org/jira/browse/MNG-6189 - [MNG-6190]: https://issues.apache.org/jira/browse/MNG-6190 - [MNG-6191]: https://issues.apache.org/jira/browse/MNG-6191 - [MNG-6192]: https://issues.apache.org/jira/browse/MNG-6192 - [flatten-maven-plugin]: https://www.mojohaus.org/flatten-maven-plugin/ + diff --git a/content/markdown/docs/3.5.0/release-notes.md b/content/markdown/docs/3.5.0/release-notes.md index 7de5cb072d..86aafa8aa2 100644 --- a/content/markdown/docs/3.5.0/release-notes.md +++ b/content/markdown/docs/3.5.0/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.5.0 @@ -133,8 +133,8 @@ Thank you for your time and feedback. - If you have are using `..` for a non maven-plugin project, you will get a WARNING which looks like this: - [INFO] Scanning for projects... - [WARNING] The project org.apache.maven:maven:pom:3.5.0 uses prerequisites which is only intended for maven-plugin projects but not for non maven-plugin projects. For such purposes you should use the maven-enforcer-plugin. See https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html + [INFO] Scanning for projects... + [WARNING] The project org.apache.maven:maven:pom:3.5.0 uses prerequisites which is only intended for maven-plugin projects but not for non maven-plugin projects. For such purposes you should use the maven-enforcer-plugin. See https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html This will tell you to use [maven-enforcer-plugin][] to check the version of Maven you are expecting to build your project with, instead of using `prerequisites` [MNG-5297][], [MNG-6092][]. @@ -263,199 +263,102 @@ The full list of changes as well as detailed descriptions of same can be found i See [complete release notes for all versions][7] [0]: ../../download.html - [1]: ../../plugins/index.html - [2]: https://maven.apache.org/ - [3]: /mailing-lists.html - [4]: /ref/3.5.0/ - [5]: http://www.mail-archive.com/dev@maven.apache.org/msg112103.html - [6]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12336084&styleName=Text - [7]: ../../docs/history.html - [flatten-maven-plugin]: https://www.mojohaus.org/flatten-maven-plugin/ - [maven-aether-provider]: /ref/3.5.0/maven-aether-provider/ - [maven-compat]: /ref/3.5.0/maven-compat/ - [maven-enforcer-plugin]: /enforcer/maven-enforcer-plugin/ - [maven-resolver]: /resolver/ - [MNG-2199]: https://issues.apache.org/jira/browse/MNG-2199 - [MNG-3507]: https://issues.apache.org/jira/browse/MNG-3507 - [MNG-5297]: https://issues.apache.org/jira/browse/MNG-5297 - [MNG-5368]: https://issues.apache.org/jira/browse/MNG-5368 - [MNG-5579]: https://issues.apache.org/jira/browse/MNG-5579 - [MNG-5607]: https://issues.apache.org/jira/browse/MNG-5607 - [MNG-5629]: https://issues.apache.org/jira/browse/MNG-5629 - [MNG-5815]: https://issues.apache.org/jira/browse/MNG-5815 - [MNG-5823]: https://issues.apache.org/jira/browse/MNG-5823 - [MNG-5829]: https://issues.apache.org/jira/browse/MNG-5829 - [MNG-5836]: https://issues.apache.org/jira/browse/MNG-5836 - [MNG-5852]: https://issues.apache.org/jira/browse/MNG-5852 - [MNG-5878]: https://issues.apache.org/jira/browse/MNG-5878 - [MNG-5883]: https://issues.apache.org/jira/browse/MNG-5883 - [MNG-5889]: https://issues.apache.org/jira/browse/MNG-5889 - [MNG-5895]: https://issues.apache.org/jira/browse/MNG-5895 - [MNG-5904]: https://issues.apache.org/jira/browse/MNG-5904 - [MNG-5931]: https://issues.apache.org/jira/browse/MNG-5931 - [MNG-5934]: https://issues.apache.org/jira/browse/MNG-5934 - [MNG-5946]: https://issues.apache.org/jira/browse/MNG-5946 - [MNG-5954]: https://issues.apache.org/jira/browse/MNG-5954 - [MNG-5958]: https://issues.apache.org/jira/browse/MNG-5958 - [MNG-5961]: https://issues.apache.org/jira/browse/MNG-5961 - [MNG-5962]: https://issues.apache.org/jira/browse/MNG-5962 - [MNG-5963]: https://issues.apache.org/jira/browse/MNG-5963 - [MNG-5967]: https://issues.apache.org/jira/browse/MNG-5967 - [MNG-5968]: https://issues.apache.org/jira/browse/MNG-5968 - [MNG-5975]: https://issues.apache.org/jira/browse/MNG-5975 - [MNG-5977]: https://issues.apache.org/jira/browse/MNG-5977 - [MNG-5993]: https://issues.apache.org/jira/browse/MNG-5993 - [MNG-6001]: https://issues.apache.org/jira/browse/MNG-6001 - [MNG-6003]: https://issues.apache.org/jira/browse/MNG-6003 - [MNG-6014]: https://issues.apache.org/jira/browse/MNG-6014 - [MNG-6017]: https://issues.apache.org/jira/browse/MNG-6017 - [MNG-6022]: https://issues.apache.org/jira/browse/MNG-6022 - [MNG-6030]: https://issues.apache.org/jira/browse/MNG-6030 - [MNG-6032]: https://issues.apache.org/jira/browse/MNG-6032 - [MNG-6053]: https://issues.apache.org/jira/browse/MNG-6053 - [MNG-6057]: https://issues.apache.org/jira/browse/MNG-6057 - [MNG-6068]: https://issues.apache.org/jira/browse/MNG-6068 - [MNG-6078]: https://issues.apache.org/jira/browse/MNG-6078 - [MNG-6081]: https://issues.apache.org/jira/browse/MNG-6081 - [MNG-6088]: https://issues.apache.org/jira/browse/MNG-6088 - [MNG-6090]: https://issues.apache.org/jira/browse/MNG-6090 - [MNG-6092]: https://issues.apache.org/jira/browse/MNG-6092 - [MNG-6093]: https://issues.apache.org/jira/browse/MNG-6093 - [MNG-6102]: https://issues.apache.org/jira/browse/MNG-6102 - [MNG-6105]: https://issues.apache.org/jira/browse/MNG-6105 - [MNG-6106]: https://issues.apache.org/jira/browse/MNG-6106 - [MNG-6109]: https://issues.apache.org/jira/browse/MNG-6109 - [MNG-6110]: https://issues.apache.org/jira/browse/MNG-6110 - [MNG-6115]: https://issues.apache.org/jira/browse/MNG-6115 - [MNG-6117]: https://issues.apache.org/jira/browse/MNG-6117 - [MNG-6136]: https://issues.apache.org/jira/browse/MNG-6136 - [MNG-6137]: https://issues.apache.org/jira/browse/MNG-6137 - [MNG-6138]: https://issues.apache.org/jira/browse/MNG-6138 - [MNG-6140]: https://issues.apache.org/jira/browse/MNG-6140 - [MNG-6144]: https://issues.apache.org/jira/browse/MNG-6144 - [MNG-6145]: https://issues.apache.org/jira/browse/MNG-6145 - [MNG-6146]: https://issues.apache.org/jira/browse/MNG-6146 - [MNG-6147]: https://issues.apache.org/jira/browse/MNG-6147 - [MNG-6150]: https://issues.apache.org/jira/browse/MNG-6150 - [MNG-6151]: https://issues.apache.org/jira/browse/MNG-6151 - [MNG-6152]: https://issues.apache.org/jira/browse/MNG-6152 - [MNG-6163]: https://issues.apache.org/jira/browse/MNG-6163 - [MNG-6165]: https://issues.apache.org/jira/browse/MNG-6165 - [MNG-6166]: https://issues.apache.org/jira/browse/MNG-6166 - [MNG-6168]: https://issues.apache.org/jira/browse/MNG-6168 - [MNG-6170]: https://issues.apache.org/jira/browse/MNG-6170 - [MNG-6171]: https://issues.apache.org/jira/browse/MNG-6171 - [MNG-6172]: https://issues.apache.org/jira/browse/MNG-6172 - [MNG-6173]: https://issues.apache.org/jira/browse/MNG-6173 - [MNG-6176]: https://issues.apache.org/jira/browse/MNG-6176 - [MNG-6177]: https://issues.apache.org/jira/browse/MNG-6177 - [MNG-6179]: https://issues.apache.org/jira/browse/MNG-6179 - [MNG-6180]: https://issues.apache.org/jira/browse/MNG-6180 - [MNG-6181]: https://issues.apache.org/jira/browse/MNG-6181 - [MNG-6182]: https://issues.apache.org/jira/browse/MNG-6182 - [MNG-6183]: https://issues.apache.org/jira/browse/MNG-6183 - [MNG-6185]: https://issues.apache.org/jira/browse/MNG-6185 - [MNG-6189]: https://issues.apache.org/jira/browse/MNG-6189 - [MNG-6190]: https://issues.apache.org/jira/browse/MNG-6190 - [MNG-6191]: https://issues.apache.org/jira/browse/MNG-6191 - [MNG-6192]: https://issues.apache.org/jira/browse/MNG-6192 - [MNG-6195]: https://issues.apache.org/jira/browse/MNG-6195 - [MNG-6198]: https://issues.apache.org/jira/browse/MNG-6198 + diff --git a/content/markdown/docs/3.5.2/release-notes.md b/content/markdown/docs/3.5.2/release-notes.md index 51c828df55..958ef7c085 100644 --- a/content/markdown/docs/3.5.2/release-notes.md +++ b/content/markdown/docs/3.5.2/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.5.2 @@ -89,10 +89,12 @@ The full list of changes as well as detailed descriptions of same can be found i - [MNG-6242][] - No color for maven on Cygwin ### Sub-tasks + - [MNG-6186][] - switch to improved HawtJNI - [MNG-6280][] - ArrayIndexOutOfBoundsException caused by pom.xml with process instructions ### Improvements + - [MNG-5457][] - Show repository id when downloading or uploading from/to a remote repository - [MNG-6025][] - Add a ProjectArtifactsCache similar to PluginArtifactsCache - [MNG-6123][] - detect self references in POM and fail fast @@ -104,10 +106,12 @@ The full list of changes as well as detailed descriptions of same can be found i - [MNG-6228][] - Optionality not displayed in dependency tree when run in debug mode ### New Features + - [MNG-6084][] - Support JSR 250 annotations - [MNG-6220][] - Add CLI options to control color output ### Tasks + - [MNG-6167][] - Clean up dependency mess (reported by dependency:analyze) - [MNG-6258][] - Upgrade to Maven Resolver 1.1.0 @@ -148,3 +152,4 @@ See [complete release notes for all versions][7] [MNG-6242]: https://issues.apache.org/jira/browse/MNG-6242 [MNG-6258]: https://issues.apache.org/jira/browse/MNG-6258 [MNG-6280]: https://issues.apache.org/jira/browse/MNG-6280 + diff --git a/content/markdown/docs/3.5.3/release-notes.md b/content/markdown/docs/3.5.3/release-notes.md index ade2625ecb..f97ba4b564 100644 --- a/content/markdown/docs/3.5.3/release-notes.md +++ b/content/markdown/docs/3.5.3/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.5.3 @@ -207,3 +207,4 @@ See [complete release notes for all versions][5] [MNG-6352]: https://issues.apache.org/jira/browse/MNG-6352 [MNG-6353]: https://issues.apache.org/jira/browse/MNG-6353 [MNG-6372]: https://issues.apache.org/jira/browse/MNG-6372 + diff --git a/content/markdown/docs/3.5.4/release-notes.md b/content/markdown/docs/3.5.4/release-notes.md index 00ce6bd809..75b5fe0ab3 100644 --- a/content/markdown/docs/3.5.4/release-notes.md +++ b/content/markdown/docs/3.5.4/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.5.4 @@ -42,7 +42,7 @@ We really value the contributions of these non committers, so this section is fo Bugs: -- [MNG-6370][] reporter and contributor: Sylwester Lachiewicz +- [MNG-6370][] reporter and contributor: Sylwester Lachiewicz - [MNG-6382][] reporter: Falko Modler - [MNG-6388][] reporter: Mike Kelly - [MNG-6410][] reporter and contributor: Łukasz Dywicki @@ -55,7 +55,7 @@ Improvements: Dependency Upgrades: -- [MNG-6344][] reporter and contributor: Sylwester Lachiewicz +- [MNG-6344][] reporter and contributor: Sylwester Lachiewicz Many thanks to all reporters and contributors for their time and support. @@ -78,6 +78,7 @@ There are some additional minor improvements, the most notable of which is: ## [The detailed issue list](#Details) ### Bugs + - [MNG-6370][] `ConcurrencyDependencyGraph#getNumberOfBuilds()` does not remove finished projects from unfinished ones - [MNG-6372][] On Windows Maven can output spurious ANSI escapes such as `[0m [0m` - [MNG-6382][] JANSI fails frequently with `NumberFormatException` when building in parallel @@ -87,6 +88,7 @@ There are some additional minor improvements, the most notable of which is: - [MNG-6410][] Add `groupId` to `--resume-from` suggestion if `artifactId` is not unique in reactor ### Improvements + - [MNG-5756][] Java home output in `mvn -v` is misleading - [MNG-5940][] Change the `maven-source-plugin` `jar` goal into `jar-no-fork` in Maven Super POM - [MNG-6362][] Add documentation information for GitHub @@ -95,9 +97,11 @@ There are some additional minor improvements, the most notable of which is: - [MNG-6411][] Improve readability of project list returned when `--resume-from` option value is invalid ### Tasks + - [MNG-6377][] switch from Git-WIP to Gitbox ### Dependency upgrades + - [MNG-6344][] Upgrade Guice to 4.2.0 - [MNG-6423][] Upgrade to Wagon 3.1.0 @@ -128,3 +132,4 @@ See [complete release notes for all versions][5] [MNG-6377]: https://issues.apache.org/jira/browse/MNG-6377 [MNG-6344]: https://issues.apache.org/jira/browse/MNG-6344 [MNG-6423]: https://issues.apache.org/jira/browse/MNG-6423 + diff --git a/content/markdown/docs/3.6.0/release-notes.md b/content/markdown/docs/3.6.0/release-notes.md index eef79b5560..a566523748 100644 --- a/content/markdown/docs/3.6.0/release-notes.md +++ b/content/markdown/docs/3.6.0/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.6.0 @@ -44,22 +44,22 @@ the [end of these release notes](#Details). Code Contributors of this release: - * [MNG-6383] Christoph Kunze - * [MNG-6311] David Churcher +* [MNG-6383] Christoph Kunze +* [MNG-6311] David Churcher Issue Reporters of this release: - * [MNG-4508] Richard van der Hoff - * [MNG-5951] Jörg Sesterhenn - * [MNG-6311] David Churcher - * [MNG-6358] Adam John Burley - * [MNG-6383] Christoph Kunze - * [MNG-6391] Alexander Griesbaum - * [MNG-6412] Christoph Amshoff - * [MNG-6415] Seckin Onur Selamet - * [MNG-6475] Phillip Webb - * [MNG-6490] John Canny - * [MNG-6492] Hoa Phan +* [MNG-4508] Richard van der Hoff +* [MNG-5951] Jörg Sesterhenn +* [MNG-6311] David Churcher +* [MNG-6358] Adam John Burley +* [MNG-6383] Christoph Kunze +* [MNG-6391] Alexander Griesbaum +* [MNG-6412] Christoph Amshoff +* [MNG-6415] Seckin Onur Selamet +* [MNG-6475] Phillip Webb +* [MNG-6490] John Canny +* [MNG-6492] Hoa Phan Many thanks to all reporters and contributors for their time and support. @@ -67,7 +67,7 @@ Many thanks to all reporters and contributors for their time and support. Thanks to the following preliminary testers: -- Filipe Sousa +- Filipe Sousa - Eric Lilja - Enrico Olivelli - Gary Gregory @@ -83,7 +83,7 @@ At the time of release, there are no known regressions introduced by this releas been increased in previous version which influenced some of our users. This should have been fixed [MNG-6311], [MNG-6383] and [MNG-6412]. -- The output in the reactor summary has been improved [MNG-6391] +- The output in the reactor summary has been improved [MNG-6391] cause it confused people. In Maven 3.6.0 the reactor summary now looks like the following: @@ -108,12 +108,13 @@ At the time of release, there are no known regressions introduced by this releas [INFO] ------------------------------------------------------------------------ ``` - The `parent` in the above output is the artifact name of the root module and - the `5.0.4-SNAPSHOT` is the versions number for all modules in this - reactor build. +The `parent` in the above output is the artifact name of the root module and +the `5.0.4-SNAPSHOT` is the versions number for all modules in this +reactor build. + +If you have an aggregator pom which contains different modules with different +versions each line will contain the appropriate versions which looks like this: - If you have an aggregator pom which contains different modules with different - versions each line will contain the appropriate versions which looks like this: ``` [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: @@ -131,7 +132,7 @@ At the time of release, there are no known regressions introduced by this releas ... ``` -- There was an issue related to the classpath ordering [MNG-6415] in Maven which +- There was an issue related to the classpath ordering [MNG-6415] in Maven which can cause issues which has been fixed. ## [The detailed issue list](#Details) @@ -211,3 +212,4 @@ See [complete release notes for all versions][5] [MNG-6492]: https://issues.apache.org/jira/browse/MNG-6492 [MNG-6496]: https://issues.apache.org/jira/browse/MNG-6496 [MNG-6497]: https://issues.apache.org/jira/browse/MNG-6497 + diff --git a/content/markdown/docs/3.6.1/release-notes.md b/content/markdown/docs/3.6.1/release-notes.md index ccb0158e6d..0721450313 100644 --- a/content/markdown/docs/3.6.1/release-notes.md +++ b/content/markdown/docs/3.6.1/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.6.1 @@ -44,38 +44,37 @@ the [end of these release notes](#Details). Issue Reporters of this release: - * [MNG-5705] Ondra Žižka - * [MNG-5965] Matthias Schmalz - * [MNG-6059] Andreas Sewe - * [MNG-6159] Christian Aistleitner - * [MNG-6213] Jin Kwon - * [MNG-6256] Christoph Etzel - * [MNG-6261] Dawid Weiss - * [MNG-6262] Gene Smith - * [MNG-6346] Patrik Jetzer - * [MNG-6374] Rohan Padhye - * [MNG-6495] Elliotte Rusty Harold - * [MNG-6506] Andreas Veithen - * [MNG-6526] Olaf Otto - * [MNG-6529] Michael Istria - * [MNG-6530] Michael Istria - * [MNG-6533] Michael Istria - * [MNG-6543] Romain Manni-Bucau - * [MNG-6558] Guy Brand - * [MNG-6577] Rohan Padhye - * [MNG-6591] Olaf Otto - * [MNG-6605] Gunnar Wagenknecht - * [MNG-6618] Viacheslav Yakunin +* [MNG-5705] Ondra Žižka +* [MNG-5965] Matthias Schmalz +* [MNG-6059] Andreas Sewe +* [MNG-6159] Christian Aistleitner +* [MNG-6213] Jin Kwon +* [MNG-6256] Christoph Etzel +* [MNG-6261] Dawid Weiss +* [MNG-6262] Gene Smith +* [MNG-6346] Patrik Jetzer +* [MNG-6374] Rohan Padhye +* [MNG-6495] Elliotte Rusty Harold +* [MNG-6506] Andreas Veithen +* [MNG-6526] Olaf Otto +* [MNG-6529] Michael Istria +* [MNG-6530] Michael Istria +* [MNG-6533] Michael Istria +* [MNG-6543] Romain Manni-Bucau +* [MNG-6558] Guy Brand +* [MNG-6577] Rohan Padhye +* [MNG-6591] Olaf Otto +* [MNG-6605] Gunnar Wagenknecht +* [MNG-6618] Viacheslav Yakunin Code Contributors of this release: - * [MNG-6374] Gabriel Belingueres (indirectly via plexus-utils PR) - * [MNG-6529] Michael Istria - * [MNG-6530] Michael Istria - * [MNG-6558] Guy Brand - * [MNG-6261] Fabiano C. de Oliveira - * [MNG-6533] Michael Istria - +* [MNG-6374] Gabriel Belingueres (indirectly via plexus-utils PR) +* [MNG-6529] Michael Istria +* [MNG-6530] Michael Istria +* [MNG-6558] Guy Brand +* [MNG-6261] Fabiano C. de Oliveira +* [MNG-6533] Michael Istria Many thanks to all reporters and contributors for their time and support. @@ -85,16 +84,16 @@ Many thanks to all reporters and contributors for their time and support. Thanks to the following preliminary testers: - * Gabriel Belingueres - * Francois Papon - * Eric Lilja +* Gabriel Belingueres +* Francois Papon +* Eric Lilja ## Known Issues - * New attributes for URLs inheritance (see [User Visible Changes](./release-notes.html#User_visible_Changes)) are not yet - accepted during POM structure control on [upload to the Central Repository](/repository/guide-central-repository-upload.html): - see [MVNCENTRAL-4841](https://issues.sonatype.org/browse/MVNCENTRAL-4841) to track progress - * If you are using Maven reporting, it might happen that you will get an exception which looks like this: +* New attributes for URLs inheritance (see [User Visible Changes](./release-notes.html#User_visible_Changes)) are not yet + accepted during POM structure control on [upload to the Central Repository](/repository/guide-central-repository-upload.html): + see [MVNCENTRAL-4841](https://issues.sonatype.org/browse/MVNCENTRAL-4841) to track progress +* If you are using Maven reporting, it might happen that you will get an exception which looks like this: ``` [INFO] Scanning for projects... @@ -107,7 +106,7 @@ Caused by: java.lang.NullPointerException ... ``` -This is caused by using a `..` which does not contain +This is caused by using a `..` which does not contain a `` element. Temporarily this issue can circumvented by adding an empty `` element @@ -124,50 +123,44 @@ inside the ``. executions of phases. This has been fixed with [MNG-5965]. - NullPointerException related to call in parallel build like `mvn -T 1C clean javadoc:aggregate` - [MNG-5705] + [MNG-5705] -- A performance issue related to artifact transfer has been found related to [WAGON-537]. It +- A performance issue related to artifact transfer has been found related to [WAGON-537]. It has been solved via the update to [Maven Wagon 3.3.1][MNG-6526]. - There had been issues related calling Maven script like this: `mvn -f ..` - - Having parentheses within the path, which has been fixed with [MNG-6346]. - - Script can break having special characters as part of the path, which has - been solved with [MNG-6256]. - + - Having parentheses within the path, which has been fixed with [MNG-6346]. + - Script can break having special characters as part of the path, which has + been solved with [MNG-6256]. - Issue related to the Maven Resolver API which broke some IDEs (for example https://youtrack.jetbrains.com/issue/IDEA-201282); this has been fixed by [MNG-6538]. - - Issue related to missing event for ToolchainsBuildingResult on EventSpy [MNG-6558]. - - Issue related to support Java 9+ `ClassLoader.findClass(String moduleName, String name)` in Mojos. This has been fixed with [MNG-6543]. - - Improvement about the memory consumption has been done with [MNG-6571]. - - Issue related to relative parent POM resolution failing in 3.5.0 with complex multimodule builds has been fixed with [MNG-6261]. - - Missing export for org.slf4j.event.Level has been done with [MNG-6618] - ## User visible Changes - - Maven has now a an option to suppress the transfer progress when downloading/uploading -in interactive mode. +- Maven has now a an option to suppress the transfer progress when downloading/uploading + in interactive mode. ``` mvn --no-transfer-progress .... ``` + or in short: ``` mvn -ntp ... .... ``` - - There had been an issues like [MNG-6505] and [MNG-6059] related to the construction of -URL's etc. within `project`, `distributionManagement` and `scm` part in the pom for multi module -builds like this: +- There had been an issues like [MNG-6505] and [MNG-6059] related to the construction of + URL's etc. within `project`, `distributionManagement` and `scm` part in the pom for multi module + builds like this: ``` @@ -191,68 +184,66 @@ builds like this: Detailed explanations can be found in [Inheritance Assembly][inheritance-assembly] and in [MNG-6059] - [inheritance-assembly]: https://maven.apache.org/ref/3.6.1/maven-model-builder/index.html#Inheritance_Assembly ## The detailed issue list[](#Details) ### Bugs: - - [MNG-5705] - NPE on parallel build in BuilderCommon.handleBuildError(BuilderCommon.java:147) - - [MNG-5965] - Parallel build multiplies work if multiple goals are given - - [MNG-5995] - Maven itself cannot run without maven-compat - - [MNG-6256] - Maven script can break if "-f" path contains special characters - - [MNG-6261] - Relative parent POM resolution failing in 3.5.0 with complex multimodule builds - - [MNG-6262] - getCanonicalFile() is not used consistently during project resolution - - [MNG-6346] - ... was unexpected at this time when using -f option and path contains brackets - - [MNG-6374] - ModelBuilder hangs with malformed pom.xml - - [MNG-6429] - Integration Test site publishing requires Java 7 (or javadoc errors ignored) - - [MNG-6495] - ModelResolver cannot be null - - [MNG-6505] - child.(x.y).inherit.append.path value should be inherited - - [MNG-6506] - Mojos are unable to load package annotations on Java >= 9 - - [MNG-6529] - `ProjectBuilder.build(List projects, boolean, ProjectBuildingRequest)` doesn't honor `ProjectBuildingRequest.isResolveDependencies()` - - [MNG-6530] - Regression in ProjectBuilder when file change between invocations (introduced by MNG-6311) - - [MNG-6533] - `ProjectBuilder.build(list_of_projects,...)` does not contain MavenProject in exception report - - [MNG-6543] - Upgrade plexus classworld to support java 9+ `ClassLoader.findClass(String moduleName, String name)` in Mojos - - [MNG-6558] - ToolchainsBuildingResult event is not sent on EventSpy - - [MNG-6577] - pom.xml: Uncaught IllegalArgumentException when parsing unicode entity ref - - [MNG-6590] - DefaultProjectArtifactsCache java.lang.IllegalStateException: Duplicate artifact resolution result - - [MNG-6599] - unknown version in model id when version is defined from parent +- [MNG-5705] - NPE on parallel build in BuilderCommon.handleBuildError(BuilderCommon.java:147) +- [MNG-5965] - Parallel build multiplies work if multiple goals are given +- [MNG-5995] - Maven itself cannot run without maven-compat +- [MNG-6256] - Maven script can break if "-f" path contains special characters +- [MNG-6261] - Relative parent POM resolution failing in 3.5.0 with complex multimodule builds +- [MNG-6262] - getCanonicalFile() is not used consistently during project resolution +- [MNG-6346] - ... was unexpected at this time when using -f option and path contains brackets +- [MNG-6374] - ModelBuilder hangs with malformed pom.xml +- [MNG-6429] - Integration Test site publishing requires Java 7 (or javadoc errors ignored) +- [MNG-6495] - ModelResolver cannot be null +- [MNG-6505] - child.(x.y).inherit.append.path value should be inherited +- [MNG-6506] - Mojos are unable to load package annotations on Java >= 9 +- [MNG-6529] - `ProjectBuilder.build(List projects, boolean, ProjectBuildingRequest)` doesn't honor `ProjectBuildingRequest.isResolveDependencies()` +- [MNG-6530] - Regression in ProjectBuilder when file change between invocations (introduced by MNG-6311) +- [MNG-6533] - `ProjectBuilder.build(list_of_projects,...)` does not contain MavenProject in exception report +- [MNG-6543] - Upgrade plexus classworld to support java 9+ `ClassLoader.findClass(String moduleName, String name)` in Mojos +- [MNG-6558] - ToolchainsBuildingResult event is not sent on EventSpy +- [MNG-6577] - pom.xml: Uncaught IllegalArgumentException when parsing unicode entity ref +- [MNG-6590] - DefaultProjectArtifactsCache java.lang.IllegalStateException: Duplicate artifact resolution result +- [MNG-6599] - unknown version in model id when version is defined from parent ### Improvements - - [MNG-6059] - Important use cases not covered, as child.inherit.append.path affects all children - - [MNG-6159] - Child path adjustments break git scm urls - - [MNG-6213] - Maven doesn't check the validity of scope value - - [MNG-6481] - Allow to compile and test Maven with Java 11 - - [MNG-6513] - Replace depreated Plexus javadoc tags with annotations in ITs - - [MNG-6515] - Fix javadoc build errors under Java 8 and 11 - - [MNG-6520] - Update assembly descriptors to 2.0.0 - - [MNG-6522] - Prepare Maven's Core Integration Test Suite to test with Java 12 and 13-ea - - [MNG-6572] - use int or long instead of BigIntegers for little numbers in ComparableVersion - - [MNG-6593] - track input location for super-pom - - [MNG-6597] - add input location tracking for plugins configuration - - [MNG-6600] - add input location tracking for default lifecycle bindings executions - - [MNG-6601] - add input location tracking for site's reportPlugins injected by reports conversion - - [MNG-6605] - Allow to suppress download messages in interactive mode - - [MNG-6611] - Update animal-sniffer-maven-plugin to 1.17 +- [MNG-6059] - Important use cases not covered, as child.inherit.append.path affects all children +- [MNG-6159] - Child path adjustments break git scm urls +- [MNG-6213] - Maven doesn't check the validity of scope value +- [MNG-6481] - Allow to compile and test Maven with Java 11 +- [MNG-6513] - Replace depreated Plexus javadoc tags with annotations in ITs +- [MNG-6515] - Fix javadoc build errors under Java 8 and 11 +- [MNG-6520] - Update assembly descriptors to 2.0.0 +- [MNG-6522] - Prepare Maven's Core Integration Test Suite to test with Java 12 and 13-ea +- [MNG-6572] - use int or long instead of BigIntegers for little numbers in ComparableVersion +- [MNG-6593] - track input location for super-pom +- [MNG-6597] - add input location tracking for plugins configuration +- [MNG-6600] - add input location tracking for default lifecycle bindings executions +- [MNG-6601] - add input location tracking for site's reportPlugins injected by reports conversion +- [MNG-6605] - Allow to suppress download messages in interactive mode +- [MNG-6611] - Update animal-sniffer-maven-plugin to 1.17 ### Wish - - [MNG-6571] - Maven memory consumption issue +- [MNG-6571] - Maven memory consumption issue ### Task - - [MNG-6538] - Upgrade Maven Artifact Resolver to 1.3.3 to restore API - - [MNG-6544] - Replace CacheUtils#{eq,hash} with Objects - - [MNG-6573] - Use latest Maven 3.6.0 to build Maven Core and plugins with ASF CI - - [MNG-6618] - Maven doesn't export org.slf4j.event.Level +- [MNG-6538] - Upgrade Maven Artifact Resolver to 1.3.3 to restore API +- [MNG-6544] - Replace CacheUtils#{eq,hash} with Objects +- [MNG-6573] - Use latest Maven 3.6.0 to build Maven Core and plugins with ASF CI +- [MNG-6618] - Maven doesn't export org.slf4j.event.Level ### Dependency upgrade - - [MNG-6526] - Upgrade to Wagon 3.3.1 (from 3.2.0) - - [MNG-6591] - Upgrade to Wagon 3.3.2 - +- [MNG-6526] - Upgrade to Wagon 3.3.1 (from 3.2.0) +- [MNG-6591] - Upgrade to Wagon 3.3.2 The full list of changes can be found in our [issue management system][4]. @@ -307,5 +298,5 @@ See [complete release notes for all versions][5] [MNG-6618]: http://issues.apache.org/jira/browse/MNG-6618 [MNG-6526]: http://issues.apache.org/jira/browse/MNG-6526 [MNG-6591]: http://issues.apache.org/jira/browse/MNG-6591 - [WAGON-537]: http://issues.apache.org/jira/browse/WAGON-537 + diff --git a/content/markdown/docs/3.6.2/release-notes.md b/content/markdown/docs/3.6.2/release-notes.md index ea2bf8aa96..154c088581 100644 --- a/content/markdown/docs/3.6.2/release-notes.md +++ b/content/markdown/docs/3.6.2/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.6.2 @@ -46,12 +46,11 @@ Issue Reporters of this release: Benoit GUERIN, Christian Schulte, Elliotte Rust Code Contributors of this release: Guillaume Nodet, Mickael Istria, Ray Tsang, Stefan Oehme, Joseph Walton, Bo Zhang, AElMehdi, Christian Schulte, Mao Shuai, MartinKanters, Sergey Chernov, Jesse Glick. - Many thanks to all reporters and contributors for their time and support. (Please send an email to the dev list if we missed anyone). -## Overview about the changes +## Overview about the changes - This release focuses mostly performance improvements, better memory footprint, and less CPU usage. @@ -65,74 +64,73 @@ Many thanks to all reporters and contributors for their time and support. Sub-task - [MNG-6680] - Convert Maven Settings Builder to JSR 330 - [MNG-6685] - Convert Maven Model Builder to JSR 330 - [MNG-6686] - Convert Maven Embedder to JSR 330 + [MNG-6680] - Convert Maven Settings Builder to JSR 330 + [MNG-6685] - Convert Maven Model Builder to JSR 330 + [MNG-6686] - Convert Maven Embedder to JSR 330 Bug - [MNG-6375] - NullPointerException when pom.xml has incomplete XML tag - [MNG-6626] - NullPointerException in DefaultExceptionHandler - [MNG-6629] - DefaultModelValidator.validateId is inefficient - [MNG-6630] - ComparableVersion.parseVersion is inefficient - [MNG-6631] - DefaultArtifactVersion.parseVersion is inefficient - [MNG-6632] - ArtifactHandlerManager.getArtifactHandler is inefficient - [MNG-6633] - ExcludesArtifactFilter is a memory hog - [MNG-6636] - NPE on reporting convertion (DefaultReportingConverter) when inheritance of with no reports - [MNG-6639] - Child inherit.append.path attributes not defined in Maven POM XSD - [MNG-6642] - Tycho-based modules do not build with 3.6.1 (works with 3.6.0) - [MNG-6643] - Version comparison CLI does not work anymore - [MNG-6644] - NPE in DefaultReportingConverter when reports has no InputLocation (using polyglot Maven) - [MNG-6647] - NPE in DefaultReportingConverter (when reports injected by Repaint IO maven-tiles) - [MNG-6653] - DefaultProjectBuildingRequest copy constructor does not copy all fields - [MNG-6668] - Model location handling uses too much memory - [MNG-6669] - Tycho cannot resolve project dependencies - [MNG-6700] - Equal compile source roots are added multiple times - [MNG-6703] - DefaultUrlNormalizer doesn't normalize all relative URIs - [MNG-6704] - MavenRepositorySystemUtils.newSession() misses assignment - [MNG-6707] - Maven XML parser does not accept '>' in XML processing instructions - [MNG-6712] - Downgrade maven-resolver:1.4.0 to 1.3.3 - [MNG-6713] - Fix ExclusionArtifactFilter to respect wildcard - [MNG-6716] - relative testSourceDirectory on macos throw duplicate class error - [MNG-6720] - MultiThreadedBuilder: wait for parallel running projects when using --fail-fast - [MNG-6723] - MavenProject.getParentFile() not set when using ProjectBuilder.build(List, ...) + [MNG-6375] - NullPointerException when pom.xml has incomplete XML tag + [MNG-6626] - NullPointerException in DefaultExceptionHandler + [MNG-6629] - DefaultModelValidator.validateId is inefficient + [MNG-6630] - ComparableVersion.parseVersion is inefficient + [MNG-6631] - DefaultArtifactVersion.parseVersion is inefficient + [MNG-6632] - ArtifactHandlerManager.getArtifactHandler is inefficient + [MNG-6633] - ExcludesArtifactFilter is a memory hog + [MNG-6636] - NPE on reporting convertion (DefaultReportingConverter) when inheritance of with no reports + [MNG-6639] - Child inherit.append.path attributes not defined in Maven POM XSD + [MNG-6642] - Tycho-based modules do not build with 3.6.1 (works with 3.6.0) + [MNG-6643] - Version comparison CLI does not work anymore + [MNG-6644] - NPE in DefaultReportingConverter when reports has no InputLocation (using polyglot Maven) + [MNG-6647] - NPE in DefaultReportingConverter (when reports injected by Repaint IO maven-tiles) + [MNG-6653] - DefaultProjectBuildingRequest copy constructor does not copy all fields + [MNG-6668] - Model location handling uses too much memory + [MNG-6669] - Tycho cannot resolve project dependencies + [MNG-6700] - Equal compile source roots are added multiple times + [MNG-6703] - DefaultUrlNormalizer doesn't normalize all relative URIs + [MNG-6704] - MavenRepositorySystemUtils.newSession() misses assignment + [MNG-6707] - Maven XML parser does not accept '>' in XML processing instructions + [MNG-6712] - Downgrade maven-resolver:1.4.0 to 1.3.3 + [MNG-6713] - Fix ExclusionArtifactFilter to respect wildcard + [MNG-6716] - relative testSourceDirectory on macos throw duplicate class error + [MNG-6720] - MultiThreadedBuilder: wait for parallel running projects when using --fail-fast + [MNG-6723] - MavenProject.getParentFile() not set when using ProjectBuilder.build(List, ...) Improvement - [MNG-6069] - Migrate to non deprecated parts of Commons CLI - [MNG-6638] - Prevent reparsing POMs in MavenMetadataSource - [MNG-6655] - Add support for "release" qualifier - [MNG-6665] - toolchain.xml file should support environment variables - [MNG-6667] - Hint at Maven upgrade requirement when trying to build a pom.xml with a newer modelVersion - [MNG-6675] - Make Resolver debug log messages for projects and plugins consistent - [MNG-6695] - Improve speed in collection merging - [MNG-6696] - Speed improvements while parsing big reactor projects - [MNG-6697] - Add a fast interpolator not using reflection - [MNG-6698] - Lazily compute the ManagedVersionMap - [MNG-6701] - Document maven.repo.local system property - [MNG-6702] - Improve DefaultModelValidator performance - [MNG-6705] - Speep up Artifact version check and Parent interpolation - [MNG-6718] - Upgrade Plexus Utils to 3.2.1 - [MNG-6729] - StringSearchModelInterpolator introspects objects from Java API - [MNG-6747] - Generalize 'resume from' message when build reactor fails + [MNG-6069] - Migrate to non deprecated parts of Commons CLI + [MNG-6638] - Prevent reparsing POMs in MavenMetadataSource + [MNG-6655] - Add support for "release" qualifier + [MNG-6665] - toolchain.xml file should support environment variables + [MNG-6667] - Hint at Maven upgrade requirement when trying to build a pom.xml with a newer modelVersion + [MNG-6675] - Make Resolver debug log messages for projects and plugins consistent + [MNG-6695] - Improve speed in collection merging + [MNG-6696] - Speed improvements while parsing big reactor projects + [MNG-6697] - Add a fast interpolator not using reflection + [MNG-6698] - Lazily compute the ManagedVersionMap + [MNG-6701] - Document maven.repo.local system property + [MNG-6702] - Improve DefaultModelValidator performance + [MNG-6705] - Speep up Artifact version check and Parent interpolation + [MNG-6718] - Upgrade Plexus Utils to 3.2.1 + [MNG-6729] - StringSearchModelInterpolator introspects objects from Java API + [MNG-6747] - Generalize 'resume from' message when build reactor fails Test - [MNG-6535] - Improve test coverage of org.apache.maven.model.path.DefaultUrlNormalizer + [MNG-6535] - Improve test coverage of org.apache.maven.model.path.DefaultUrlNormalizer Task - [MNG-6681] - improve documentation: dependency type = file classifier(optional)+extension + additional hints on dependency features + [MNG-6681] - improve documentation: dependency type = file classifier(optional)+extension + additional hints on dependency features Dependency upgrade - [MNG-6549] - Remove unused transitive dependencies of Guava - [MNG-6627] - upgrade plexus-component-metadata to 2.0.0 to get reproducible META-INF/plexus/components.xml - [MNG-6646] - Upgrade maven-assembly-plugin to 3.1.1 - [MNG-6671] - Upgrade Modello to 1.11 - [MNG-6674] - Upgrade Wagon to 3.3.3 - [MNG-6738] - Upgrade maven-resolver to 1.4.1 - + [MNG-6549] - Remove unused transitive dependencies of Guava + [MNG-6627] - upgrade plexus-component-metadata to 2.0.0 to get reproducible META-INF/plexus/components.xml + [MNG-6646] - Upgrade maven-assembly-plugin to 3.1.1 + [MNG-6671] - Upgrade Modello to 1.11 + [MNG-6674] - Upgrade Wagon to 3.3.3 + [MNG-6738] - Upgrade maven-resolver to 1.4.1 The full list of changes can be found in our [issue management system][4]. diff --git a/content/markdown/docs/3.6.3/release-notes.md b/content/markdown/docs/3.6.3/release-notes.md index 8115ae4618..0968b30d23 100644 --- a/content/markdown/docs/3.6.3/release-notes.md +++ b/content/markdown/docs/3.6.3/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.6.3 @@ -44,49 +44,51 @@ the [end of these release notes](#Details). Issue Reporters of this release: Jonathan Chen, Charles Oliver Nutter, Lucas Ludueño, Stig Rohde Døssing, Vladimir Sitnikov -Contributors of this release: Stuart McCulloch, Mickael Istria, Peter Lynch, Christian Wansart, Dezhi Cai, Anatoly Zaretsky, Stig Rohde Døssing - +Contributors of this release: Stuart McCulloch, Mickael Istria, Peter Lynch, Christian Wansart, Dezhi Cai, Anatoly Zaretsky, Stig Rohde Døssing + Many thanks to all reporters and contributors for their time and support. (Please send an email to the dev list if we missed anyone). -## Overview about the changes +## Overview about the changes - This is a regression release to fix some critical issues shipped with 3.6.2. - Some license issues on binary distribution have been fixed. -- This Maven distribution is now Reproducible: if you [download Maven source archive](/download.cgi) (`apache-maven-3.6.3-src.zip` or `.tar.gz`), build it on Windows with JDK 8 using following command: +- This Maven distribution is now Reproducible: if you [download Maven source archive](/download.cgi) (`apache-maven-3.6.3-src.zip` or `.tar.gz`), build it on Windows with JDK 8 using following command: + ``` mvn -DbuildNumber=cecedd343002696d0abb50b32b541b8a6ba2883f package ``` - you'll get bit-by-bit identical output (`apache-maven-3.6.3-bin.zip` and `.tar.gz` in `apache-maven/target/`) that you can check with sha512 fingerprints against official release. - If you're building on any Unix system, you'll need to add "`-Dline.separator=$'\r\n'`". - See the [Maven - Guide to Configuring for Reproducible Builds](/guides/mini/guide-reproducible-builds.html) for more details. + +you'll get bit-by-bit identical output (`apache-maven-3.6.3-bin.zip` and `.tar.gz` in `apache-maven/target/`) that you can check with sha512 fingerprints against official release. +If you're building on any Unix system, you'll need to add "`-Dline.separator=$'\r\n'`". +See the [Maven - Guide to Configuring for Reproducible Builds](/guides/mini/guide-reproducible-builds.html) for more details. ## The detailed issue list[](#Details) Sub-task - [MNG-6779] - fix jcl-over-slf4j license: Apache 2.0 instead of MIT + [MNG-6779] - fix jcl-over-slf4j license: Apache 2.0 instead of MIT Bug - [MNG-6584] - Maven version 3.6.0 does not show ReasonPhrase anymore - [MNG-6759] - [REGRESSION] Maven fails to use section from dependency when resolving transitive dependencies in some cases - [MNG-6760] - [REGRESSION] ExclusionArtifactFilter result invalid when wildcard exclusion is followed by other exclusions - [MNG-6765] - [REGRESSION] tycho pom-less builds fails with 3.6.2 - [MNG-6771] - Fix license issues on binary distribution + [MNG-6584] - Maven version 3.6.0 does not show ReasonPhrase anymore + [MNG-6759] - [REGRESSION] Maven fails to use section from dependency when resolving transitive dependencies in some cases + [MNG-6760] - [REGRESSION] ExclusionArtifactFilter result invalid when wildcard exclusion is followed by other exclusions + [MNG-6765] - [REGRESSION] tycho pom-less builds fails with 3.6.2 + [MNG-6771] - Fix license issues on binary distribution Improvement - [MNG-6778] - Use https for schemaLocations - [MNG-6799] - avoid model interpolation instability risk: ensure StringVisitorModelInterpolator replaces StringSearchModelInterpolator + [MNG-6778] - Use https for schemaLocations + [MNG-6799] - avoid model interpolation instability risk: ensure StringVisitorModelInterpolator replaces StringSearchModelInterpolator Task - [MNG-6777] - Remove duplicate resolveFile methods - [MNG-6789] - Make Maven distribution build Reproducible + [MNG-6777] - Remove duplicate resolveFile methods + [MNG-6789] - Make Maven distribution build Reproducible The full list of changes can be found in our [issue management system][4]. diff --git a/content/markdown/docs/3.8.1/release-notes.md b/content/markdown/docs/3.8.1/release-notes.md index 9a6e256e53..295adf187a 100644 --- a/content/markdown/docs/3.8.1/release-notes.md +++ b/content/markdown/docs/3.8.1/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.8.1 @@ -36,28 +36,28 @@ If you have any questions, please consult: - the maven-user mailing list: [https://maven.apache.org/mailing-lists.html](/mailing-lists.html) - the reference documentation: [https://maven.apache.org/ref/3.8.1/](/ref/3.8.1/) -## Overview about the changes +## Overview about the changes This release covers two CVEs: ### CVE-2021-26291 - We received a report from Jonathan Leitschuh about a vulnerability of custom repositories in dependency POMs. - We've split this up into three separate issues: - - - Possible Man-In-The-Middle-Attack due to custom repositories using HTTP\ +We received a report from Jonathan Leitschuh about a vulnerability of custom repositories in dependency POMs. +We've split this up into three separate issues: + +- Possible Man-In-The-Middle-Attack due to custom repositories using HTTP\ More and more repositories use HTTPS nowadays, but this hasn't always been the case. This means that Maven Central contains POMs with custom repositories that refer to a URL over HTTP. - This makes downloads via such repository a target for a MITM attack. - At the same time, developers are probably not aware that for some downloads an insecure URL is being used. + This makes downloads via such repository a target for a MITM attack. + At the same time, developers are probably not aware that for some downloads an insecure URL is being used. Because uploaded POMs to Maven Central are immutable, a change for Maven was required. To solve this, we extended the mirror configuration with `` parameter, and we added a new `external:http:*` mirror selector (like existing `external:*`), meaning "any external URL using HTTP".\ The decision was made to block such external HTTP repositories by default: this is done by providing a mirror in the `conf/settings.xml` blocking insecure HTTP external URLs. - - - Possible Domain Hijacking due to custom repositories using abandoned domains\ - Sonatype has analyzed which domains were abandoned and has claimed these domains. - - - Possible hijacking of downloads by redirecting to custom repositories\ + +- Possible Domain Hijacking due to custom repositories using abandoned domains\ + Sonatype has analyzed which domains were abandoned and has claimed these domains. + +- Possible hijacking of downloads by redirecting to custom repositories\ This one was the hardest to analyze and explain. The short story is: you're safe, dependencies are only downloaded from repositories within their context. So there are two main questions: what is the context and what is the order? The order is described on the [Repository Order](/guides/mini/guide-multiple-repositories.html#repository-order) page. @@ -69,57 +69,56 @@ This release covers two CVEs: ### CVE-2020-13956 - Apache HttpClient is a transitive dependency of Maven Resolver via Maven Wagon, so we've updated those versions as part of this release. - +Apache HttpClient is a transitive dependency of Maven Resolver via Maven Wagon, so we've updated those versions as part of this release. + ## Why does this version have the value 3.8.1? - - Why not 3.6.4?\ +- Why not 3.6.4?\ This is not just a bugfix as it contains three features that **cause a change of default behavior** (external HTTP insecure URLs are now blocked by default): your builds may fail when using this new Maven release, if you use now blocked repositories. Please check and eventually fix before upgrading. - - - Why not 3.7.0?\ + +- Why not 3.7.0?\ Apache Maven 3.7.0 has been advertised in the past that it would be the first release where you could optionally activate the build/consumer feature: the version containing this feature has been renamed to 4.0.0. Reusing 3.7.0 might lead to confusion, hence we picked the next available minor version. - - - Why not 3.8.0?\ + +- Why not 3.8.0?\ With every release there's a 72h+ voting period. During the vote of 3.8.0 a bug was discovered, one that was important enough to cancel the vote. With Maven we burn versions, to ensure we're always talking about the same "version". This way there will be never confusion about which Maven 3.8.0 one was using. - ## How to fix when I get a HTTP repository blocked? - If the repository is defined in your `pom.xml`, please fix it in your source code. +If the repository is defined in your `pom.xml`, please fix it in your source code. - If the repository is defined in one of your dependencies POM, you'll get a message like: +If the repository is defined in one of your dependencies POM, you'll get a message like: ``` [ERROR] Failed to execute goal on project test: Could not resolve dependencies for project xxx: Failed to collect dependencies at my.test:dependency:version -> my.test.transitive:transitive:version: Failed to read artifact descriptor for my.test.transitive:transitive:jar:version: Could not transfer artifact my.test.transitive:transitive:pom:version from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [blocked-repository-id (http://blocked.repository.org, default, releases+snapshots)] ``` - Options to fix are: +Options to fix are: - - upgrade the dependency version to a newer version that replaced the obsolete HTTP repository URL with a HTTPS one, +- upgrade the dependency version to a newer version that replaced the obsolete HTTP repository URL with a HTTPS one, - - keep the dependency version but [define a mirror in your settings](/guides/mini/guide-mirror-settings.html). +- keep the dependency version but [define a mirror in your settings](/guides/mini/guide-mirror-settings.html). ## The detailed issue list[](#Details) Bug - [MNG-7128] - improve error message when blocked repository defined in build POM - + [MNG-7128] - improve error message when blocked repository defined in build POM + New Feature - [MNG-7116] - Add support for mirror selector on external:http:* - [MNG-7117] - Add support for blocking mirrors - [MNG-7118] - Block external HTTP repositories by default + [MNG-7116] - Add support for mirror selector on external:http:* + [MNG-7117] - Add support for blocking mirrors + [MNG-7118] - Block external HTTP repositories by default Dependency upgrade - [MNG-7119] - Upgrade Maven Wagon to 3.4.3 - [MNG-7123] - Upgrade Maven Resolver to 1.6.2 - + [MNG-7119] - Upgrade Maven Wagon to 3.4.3 + [MNG-7123] - Upgrade Maven Resolver to 1.6.2 + The full list of changes can be found in our [issue management system][4]. ## Complete Release Notes diff --git a/content/markdown/docs/3.8.2/release-notes.md b/content/markdown/docs/3.8.2/release-notes.md index 0bfda7956e..563e9e82cd 100644 --- a/content/markdown/docs/3.8.2/release-notes.md +++ b/content/markdown/docs/3.8.2/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.8.2 @@ -76,3 +76,4 @@ See [complete release notes for all versions][5] [13]: https://issues.apache.org/jira/browse/MNG-7215 [14]: https://issues.apache.org/jira/browse/MNG-6886 [15]: https://lists.apache.org/thread.html/r7f5a62fd35dc6698c8f7097734f7c4acf4bb657d6c721e8a7bc76b8c%40%3Cusers.maven.apache.org%3E + diff --git a/content/markdown/docs/3.8.3/release-notes.md b/content/markdown/docs/3.8.3/release-notes.md index a5507c3d78..67655f9eed 100644 --- a/content/markdown/docs/3.8.3/release-notes.md +++ b/content/markdown/docs/3.8.3/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.8.3 @@ -60,3 +60,4 @@ See [complete release notes for all versions][5] [6]: https://issues.apache.org/jira/browse/MNG-7045 [7]: https://issues.apache.org/jira/browse/MNG-7235 [8]: https://issues.apache.org/jira/browse/MNG-7236 + diff --git a/content/markdown/docs/3.8.4/release-notes.md b/content/markdown/docs/3.8.4/release-notes.md index 7ab6ca6e83..216ac29f0e 100644 --- a/content/markdown/docs/3.8.4/release-notes.md +++ b/content/markdown/docs/3.8.4/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.8.4 diff --git a/content/markdown/docs/3.8.5/release-notes.md b/content/markdown/docs/3.8.5/release-notes.md index c687f920d6..3a1ebf6146 100644 --- a/content/markdown/docs/3.8.5/release-notes.md +++ b/content/markdown/docs/3.8.5/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.8.5 @@ -56,3 +56,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12351105 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.8.6/release-notes.md b/content/markdown/docs/3.8.6/release-notes.md index 673c1f806e..afd7759842 100644 --- a/content/markdown/docs/3.8.6/release-notes.md +++ b/content/markdown/docs/3.8.6/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.8.6 @@ -56,3 +56,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12351556 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.8.7/release-notes.md b/content/markdown/docs/3.8.7/release-notes.md index 9efed82c46..aa777ad4e1 100644 --- a/content/markdown/docs/3.8.7/release-notes.md +++ b/content/markdown/docs/3.8.7/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.8.7 @@ -57,3 +57,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12352690 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.8.8/release-notes.md b/content/markdown/docs/3.8.8/release-notes.md index c35d3a6890..b764dbfd4b 100644 --- a/content/markdown/docs/3.8.8/release-notes.md +++ b/content/markdown/docs/3.8.8/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.8.8 @@ -57,3 +57,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12352869 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.9.0/release-notes.md b/content/markdown/docs/3.9.0/release-notes.md index 841abe1821..180f77c278 100644 --- a/content/markdown/docs/3.9.0/release-notes.md +++ b/content/markdown/docs/3.9.0/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.9.0 @@ -88,3 +88,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12350913 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.9.1/release-notes.md b/content/markdown/docs/3.9.1/release-notes.md index d404c3b409..a7d61ba73c 100644 --- a/content/markdown/docs/3.9.1/release-notes.md +++ b/content/markdown/docs/3.9.1/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.9.1 @@ -64,3 +64,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12352872 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.9.2/release-notes.md b/content/markdown/docs/3.9.2/release-notes.md index c1cd6ada5d..c6827d6dce 100644 --- a/content/markdown/docs/3.9.2/release-notes.md +++ b/content/markdown/docs/3.9.2/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.9.2 @@ -46,22 +46,22 @@ The full list of changes can be found in our [issue management system][4]. ### Notable New Features * Dependency upgrade [MNG-7769](https://issues.apache.org/jira/browse/MNG-7769) lifted Resolver to version 1.9.10. Maven 3.9.1 used Resolver 1.9.7. For -changes since Resolver 1.9.7 see release notes for Resolver [1.9.8](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320628&version=12352986), -[1.9.9](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320628&version=12353151) and -[1.9.10](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320628&version=12353177). + changes since Resolver 1.9.7 see release notes for Resolver [1.9.8](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320628&version=12352986), + [1.9.9](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320628&version=12353151) and + [1.9.10](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320628&version=12353177). * Task [MNG-7774](https://issues.apache.org/jira/browse/MNG-7774) implemented interpolation for configuration and command line, but also provides two new -properties usable in configuration interpolation: `session.topDirectory` (reactor top directory) and `session.rootDirectory` (project root directory, usually where `.mvn` -directory reside). It is recommended to create `.mvn` directory in project root directory, as presence of this directory is used to -detect root directory location. If `.mvn` directory does not exists, root directory will not be detected, and in such case attempted use of expression `session.rootDirectory` in interpolation will make Maven refuse to start (will report error). -It is important to mention, that those two new properties, are only working within the `maven.config` file and -via the command line. They are **NOT** usable as configuration properties within your plugin configuration in your `pom.xml` file. + properties usable in configuration interpolation: `session.topDirectory` (reactor top directory) and `session.rootDirectory` (project root directory, usually where `.mvn` + directory reside). It is recommended to create `.mvn` directory in project root directory, as presence of this directory is used to + detect root directory location. If `.mvn` directory does not exists, root directory will not be detected, and in such case attempted use of expression `session.rootDirectory` in interpolation will make Maven refuse to start (will report error). + It is important to mention, that those two new properties, are only working within the `maven.config` file and + via the command line. They are **NOT** usable as configuration properties within your plugin configuration in your `pom.xml` file. * Plugin validation warnings change: they are not littered in console log anymore, but are collected and reported at the build end. Moreover, the validation checks -have been extended, more warnings are to be expected if build contains plugins that may not work with upcoming Maven 4. The build end validation report -verbosity can be controlled by `maven.plugin.validation` property values "brief", "default" and "verbose". The validation report cannot be turned off, -only by not having validation issues in the build, when the report is not shown. See [MNG-7712](https://issues.apache.org/jira/browse/MNG-7712), -[MNG-7754](https://issues.apache.org/jira/browse/MNG-7754) and [MNG-7767](https://issues.apache.org/jira/browse/MNG-7767). Almost all of the ASF Maven plugins -have been released with fixes to get rid of warnings, updating them is recommended. See [Available Plugins](https://maven.apache.org/plugins/) page for current -plugin versions. For non-ASF plugins, contact plugin maintainers to apply required changes. + have been extended, more warnings are to be expected if build contains plugins that may not work with upcoming Maven 4. The build end validation report + verbosity can be controlled by `maven.plugin.validation` property values "brief", "default" and "verbose". The validation report cannot be turned off, + only by not having validation issues in the build, when the report is not shown. See [MNG-7712](https://issues.apache.org/jira/browse/MNG-7712), + [MNG-7754](https://issues.apache.org/jira/browse/MNG-7754) and [MNG-7767](https://issues.apache.org/jira/browse/MNG-7767). Almost all of the ASF Maven plugins + have been released with fixes to get rid of warnings, updating them is recommended. See [Available Plugins](https://maven.apache.org/plugins/) page for current + plugin versions. For non-ASF plugins, contact plugin maintainers to apply required changes. ### Potentially Breaking Core Changes (if migrating from 3.8.x) @@ -84,3 +84,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12352958 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.9.3/release-notes.md b/content/markdown/docs/3.9.3/release-notes.md index a5d3192be9..49780bcf7b 100644 --- a/content/markdown/docs/3.9.3/release-notes.md +++ b/content/markdown/docs/3.9.3/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.9.3 @@ -45,19 +45,19 @@ The full list of changes can be found in our [issue management system][4]. ### Notable New Features -* Huge effort of updating ASF Maven plugins is ongoing, and Maven received a ton of lifecycle bound plugin version updates since Maven 3.9.2 (that was -released with same plugin versions as Maven 3.9.1 and 3.9.0). -* Plugin validation did shake up Maven users community, hence, on users request, they are "toned down". Validation messages are always collected (as -before), but default display mode is again "inline" as it was in Maven 3.9.1. Moreover, by default only "project local" messages are displayed to -user: issues that user can fix by editing the project POM. Plugin non-configuration issues, that can be fixed by corresponding plugin developer only -(and requires a release and updating in current project POM) are NOT displayed anymore by default. To enjoy them, one needs explicitly to enable -"verbose" mode for plugin validation. Furthermore, the precision of warnings and some badly worded messages are fixed. -* Updated Resolver brings transport and locking related fixes and improvements. -Most notably [MNG-7819](https://issues.apache.org/jira/browse/MNG-7819) got fixed that was affecting Maven 3.9.2, but the fix have important implication: -due file locking naming scheme changes, Maven 3.9.3 with file locking will not be able to share local repository with another Maven version that -predates 3.9.3 (Hence, versions 3.9.0, 3.9.1 or 3.9.2), only with another 3.9.3 or newer version. -See [Resolver configuration](https://maven.apache.org/resolver/configuration.html) and [named locks](https://maven.apache.org/resolver/maven-resolver-named-locks/) -pages for more. +* Huge effort of updating ASF Maven plugins is ongoing, and Maven received a ton of lifecycle bound plugin version updates since Maven 3.9.2 (that was + released with same plugin versions as Maven 3.9.1 and 3.9.0). +* Plugin validation did shake up Maven users community, hence, on users request, they are "toned down". Validation messages are always collected (as + before), but default display mode is again "inline" as it was in Maven 3.9.1. Moreover, by default only "project local" messages are displayed to + user: issues that user can fix by editing the project POM. Plugin non-configuration issues, that can be fixed by corresponding plugin developer only + (and requires a release and updating in current project POM) are NOT displayed anymore by default. To enjoy them, one needs explicitly to enable + "verbose" mode for plugin validation. Furthermore, the precision of warnings and some badly worded messages are fixed. +* Updated Resolver brings transport and locking related fixes and improvements. + Most notably [MNG-7819](https://issues.apache.org/jira/browse/MNG-7819) got fixed that was affecting Maven 3.9.2, but the fix have important implication: + due file locking naming scheme changes, Maven 3.9.3 with file locking will not be able to share local repository with another Maven version that + predates 3.9.3 (Hence, versions 3.9.0, 3.9.1 or 3.9.2), only with another 3.9.3 or newer version. + See [Resolver configuration](https://maven.apache.org/resolver/configuration.html) and [named locks](https://maven.apache.org/resolver/maven-resolver-named-locks/) + pages for more. ### Potentially Breaking Core Changes (if migrating from 3.8.x) @@ -81,3 +81,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12353255 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.9.4/release-notes.md b/content/markdown/docs/3.9.4/release-notes.md index 8ba0b4be27..64c2799847 100644 --- a/content/markdown/docs/3.9.4/release-notes.md +++ b/content/markdown/docs/3.9.4/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.9.4 diff --git a/content/markdown/docs/3.9.5/release-notes.md b/content/markdown/docs/3.9.5/release-notes.md index b2950b5193..0351f5d982 100644 --- a/content/markdown/docs/3.9.5/release-notes.md +++ b/content/markdown/docs/3.9.5/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.9.5 @@ -62,3 +62,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12353460 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.9.6/release-notes.md b/content/markdown/docs/3.9.6/release-notes.md index 2c674c6691..5a08cfa455 100644 --- a/content/markdown/docs/3.9.6/release-notes.md +++ b/content/markdown/docs/3.9.6/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.9.6 @@ -63,3 +63,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12353686 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.9.7/release-notes.md b/content/markdown/docs/3.9.7/release-notes.md index 4332f664cd..64029a994c 100644 --- a/content/markdown/docs/3.9.7/release-notes.md +++ b/content/markdown/docs/3.9.7/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.9.7 @@ -43,7 +43,7 @@ Regression fixes and other improvements from Maven 3.9.6. All users already on M This release updates Resolver to version [1.9.20](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320628&version=12353946) (includes fixes from [1.9.19](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320628&version=12353946) as well). Resolver upgrade includes two critical fixes, one related to "file locking" and other to "Maven metadata corruption". -Maven Core also got bug fixes, focusing on remote repository metadata handling, see [MNG-8106](https://issues.apache.org/jira/browse/MNG-8106) and [MNG-8121](https://issues.apache.org/jira/browse/MNG-8121). Latter issue should improve compatibility with some Maven Plugin projects that had no prefix, that is now mandatory. +Maven Core also got bug fixes, focusing on remote repository metadata handling, see [MNG-8106](https://issues.apache.org/jira/browse/MNG-8106) and [MNG-8121](https://issues.apache.org/jira/browse/MNG-8121). Latter issue should improve compatibility with some Maven Plugin projects that had no prefix, that is now mandatory. Maven itself received new features (backports from Maven 4.x) as ability to ignore transitive dependency introduced repositories and profile activation improvements. @@ -72,3 +72,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12353964 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.9.8/release-notes.md b/content/markdown/docs/3.9.8/release-notes.md index 8ec59bf585..0405bea45b 100644 --- a/content/markdown/docs/3.9.8/release-notes.md +++ b/content/markdown/docs/3.9.8/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.9.8 @@ -41,8 +41,8 @@ If you have any questions, please consult: Regression fixes and other improvements from Maven 3.9.7. All users already on Maven 3.9.x are advised to upgrade. Bug fixes ranges from restored ability (lost in 3.9.7) to build some project that depends on artifact with invalid POMs, -OS profile activation issues and many other minor but annoying bugs. The "known issue" (bug) from 3.9.7, -[MNG-8116](https://issues.apache.org/jira/browse/MNG-8116) was fixed as well. As part of fix Eclipse Sisu is updated to +OS profile activation issues and many other minor but annoying bugs. The "known issue" (bug) from 3.9.7, +[MNG-8116](https://issues.apache.org/jira/browse/MNG-8116) was fixed as well. As part of fix Eclipse Sisu is updated to version 0.9.0.M3, that carries ASM 9.7 (Java 23). Improvements on other hand include added logging of those aforementioned invalid POMs (in DEBUG even telling what is the problem with them), @@ -78,3 +78,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12354748 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/3.9.9/release-notes.md b/content/markdown/docs/3.9.9/release-notes.md index a54dbfe9ad..3d07754f87 100644 --- a/content/markdown/docs/3.9.9/release-notes.md +++ b/content/markdown/docs/3.9.9/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 3.9.9 @@ -68,3 +68,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12354823 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/4.0.0-alpha-10/release-notes.md b/content/markdown/docs/4.0.0-alpha-10/release-notes.md index 4be2ba5abd..bee1dd95db 100644 --- a/content/markdown/docs/4.0.0-alpha-10/release-notes.md +++ b/content/markdown/docs/4.0.0-alpha-10/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-alpha-10 @@ -43,9 +43,9 @@ If you have any questions, please consult: The full list of changes can be found in our [issue management system][4]. Notable changes include: - * user controlled relocations - * fix broken javadoc:jar goal - * fix resolver that may cause maven never to quit +* user controlled relocations +* fix broken javadoc:jar goal +* fix resolver that may cause maven never to quit ## Known Issues diff --git a/content/markdown/docs/4.0.0-alpha-12/release-notes.md b/content/markdown/docs/4.0.0-alpha-12/release-notes.md index f1d4a46496..72e7849a41 100644 --- a/content/markdown/docs/4.0.0-alpha-12/release-notes.md +++ b/content/markdown/docs/4.0.0-alpha-12/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-alpha-12 @@ -43,16 +43,16 @@ If you have any questions, please consult: The full list of changes can be found in our [issue management system][4]. Notable changes include: - * brings the latest Maven Resolver 2.0.0-alpha-6 - * leverages resolver's artifact collection filtering - * leverages resolver's new transitive dependency manager - * use JLine to provide better line editing - * upgrades SLF4j to 2.x - * do not resolve projects anymore outside the reactor to provide better consistency during builds +* brings the latest Maven Resolver 2.0.0-alpha-6 +* leverages resolver's artifact collection filtering +* leverages resolver's new transitive dependency manager +* use JLine to provide better line editing +* upgrades SLF4j to 2.x +* do not resolve projects anymore outside the reactor to provide better consistency during builds ## Known Issues -The JLine library included in this release is missing the native libraries, which will cause problems on Windows or +The JLine library included in this release is missing the native libraries, which will cause problems on Windows or non-traditional Unix platforms where the JLine's exec provider does not work (see MNG-8017). If you find any incompatibility with latest versions of plugins, do not hesitate to report those. diff --git a/content/markdown/docs/4.0.0-alpha-13/release-notes.md b/content/markdown/docs/4.0.0-alpha-13/release-notes.md index 99629e35e8..fec27f7eb8 100644 --- a/content/markdown/docs/4.0.0-alpha-13/release-notes.md +++ b/content/markdown/docs/4.0.0-alpha-13/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-alpha-13 diff --git a/content/markdown/docs/4.0.0-alpha-2/release-notes.md b/content/markdown/docs/4.0.0-alpha-2/release-notes.md index 7b15dacbc3..7bdcfef20c 100644 --- a/content/markdown/docs/4.0.0-alpha-2/release-notes.md +++ b/content/markdown/docs/4.0.0-alpha-2/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-alpha-2 @@ -60,3 +60,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12351403&projectId=12316922 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/4.0.0-alpha-3/release-notes.md b/content/markdown/docs/4.0.0-alpha-3/release-notes.md index 53bca3495c..d2eca33f65 100644 --- a/content/markdown/docs/4.0.0-alpha-3/release-notes.md +++ b/content/markdown/docs/4.0.0-alpha-3/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-alpha-3 @@ -59,3 +59,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12352443 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/4.0.0-alpha-4/release-notes.md b/content/markdown/docs/4.0.0-alpha-4/release-notes.md index b4011962e5..e09744470e 100644 --- a/content/markdown/docs/4.0.0-alpha-4/release-notes.md +++ b/content/markdown/docs/4.0.0-alpha-4/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-alpha-4 @@ -61,3 +61,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12352667 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/4.0.0-alpha-5/release-notes.md b/content/markdown/docs/4.0.0-alpha-5/release-notes.md index de1f501e9d..b52381ec33 100644 --- a/content/markdown/docs/4.0.0-alpha-5/release-notes.md +++ b/content/markdown/docs/4.0.0-alpha-5/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-alpha-5 @@ -55,3 +55,4 @@ See [complete release notes for all versions][5] [2]: https://maven.apache.org/ [4]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922&version=12352862 [5]: ../../docs/history.html + diff --git a/content/markdown/docs/4.0.0-alpha-7/release-notes.md b/content/markdown/docs/4.0.0-alpha-7/release-notes.md index c6d957eeac..856f871cd6 100644 --- a/content/markdown/docs/4.0.0-alpha-7/release-notes.md +++ b/content/markdown/docs/4.0.0-alpha-7/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-alpha-7 @@ -41,15 +41,15 @@ If you have any questions, please consult: ## Overview About the Changes This release contains an important list of new features and enhancements. The full list of changes can be found in our [issue management system][4]. Among those are: - - support for project specific settings.xml - - command line arguments interpolation - - profile-free repository support in settings - - support for exclusions when importing BOMs - - new public rootDirectory and topDirectory properties - - allow comments in .mvn/maven.config file - - plugin validation improvements (same as 3.9.x) - - infer modelVersion when using the build/consumer POM feature - - make maven-compat optional at runtime +- support for project specific settings.xml +- command line arguments interpolation +- profile-free repository support in settings +- support for exclusions when importing BOMs +- new public rootDirectory and topDirectory properties +- allow comments in .mvn/maven.config file +- plugin validation improvements (same as 3.9.x) +- infer modelVersion when using the build/consumer POM feature +- make maven-compat optional at runtime ## Known Issues diff --git a/content/markdown/docs/4.0.0-alpha-8/release-notes.md b/content/markdown/docs/4.0.0-alpha-8/release-notes.md index 8d146716e4..26909bb523 100644 --- a/content/markdown/docs/4.0.0-alpha-8/release-notes.md +++ b/content/markdown/docs/4.0.0-alpha-8/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-alpha-8 @@ -44,23 +44,23 @@ This alpha release provides new cornerstone features for the future Maven evolut In particular, the POM model which was set in stone to a 4.0.0 version since Maven 2.0, is now able to evolve. For modules that have a packaging which is not POM, the flattened consumer POM is now installed/deployed instead of the main POM, eventually translated back into a 4.0.0 model version for consumer compatibility. The build POM is also installed / deployed unchanged with `build` classifier. This allows the introduction of the 4.1.0 model which already brings a few improvements. The full list of changes can be found in our [issue management system][4]. Among those are: - - switch from [Plexus XML](https://codehaus-plexus.github.io/plexus-xml/) to StAX / [Woodstox](https://github.com/FasterXML/woodstox) for XML parsing - - support for alternative POM syntaxes - - introduce a 4.1.0 model version - - add flexible goal ordering (in 4.1.0 model) - - allow glob patterns in dependency exclusions - - support proxy port interpolation in `settings.xml` - - add support for TRACE logging level (with style "bold,magenta") - - add model version analysis and downgrade - - attach the build POM (with `build` clasifier) and simplify the build/consumer implementation - - add a new BOM packaging - - trim down the consumer POM - - expose the rootDirectory for model processing - - support configuration in `extensions.xml` / `\` elements (in 4.1.0 model) - - generic `.uri` suffix to get the URI representation of any file property - - allow registering Maven core extension in `.m2` directory instead of `MAVEN_HOME` - - colorize transfer messages - - the `root` attribute introduced in alpha-7 has been moved to the new 4.1.0 model +- switch from [Plexus XML](https://codehaus-plexus.github.io/plexus-xml/) to StAX / [Woodstox](https://github.com/FasterXML/woodstox) for XML parsing +- support for alternative POM syntaxes +- introduce a 4.1.0 model version +- add flexible goal ordering (in 4.1.0 model) +- allow glob patterns in dependency exclusions +- support proxy port interpolation in `settings.xml` +- add support for TRACE logging level (with style "bold,magenta") +- add model version analysis and downgrade +- attach the build POM (with `build` clasifier) and simplify the build/consumer implementation +- add a new BOM packaging +- trim down the consumer POM +- expose the rootDirectory for model processing +- support configuration in `extensions.xml` / `\` elements (in 4.1.0 model) +- generic `.uri` suffix to get the URI representation of any file property +- allow registering Maven core extension in `.m2` directory instead of `MAVEN_HOME` +- colorize transfer messages +- the `root` attribute introduced in alpha-7 has been moved to the new 4.1.0 model ## Known Issues diff --git a/content/markdown/docs/4.0.0-alpha-9/release-notes.md b/content/markdown/docs/4.0.0-alpha-9/release-notes.md index 722ed822f2..844c0ad2b1 100644 --- a/content/markdown/docs/4.0.0-alpha-9/release-notes.md +++ b/content/markdown/docs/4.0.0-alpha-9/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-alpha-9 @@ -41,11 +41,11 @@ If you have any questions, please consult: ## Overview About the Changes The full list of changes can be found in our [issue management system][4]. Among those are: - - switch to Maven Resolver 2.0.0-alpha-3 - - multi-threaded model builder - - namespace support in xml configuration - - ability to create proxies to inject SessionScoped beans into singletons - - Maven 4 API improvements: plugin api, dependency collection / resolution, version / version range resolution +- switch to Maven Resolver 2.0.0-alpha-3 +- multi-threaded model builder +- namespace support in xml configuration +- ability to create proxies to inject SessionScoped beans into singletons +- Maven 4 API improvements: plugin api, dependency collection / resolution, version / version range resolution ## Known Issues diff --git a/content/markdown/docs/4.0.0-beta-3/release-notes.md b/content/markdown/docs/4.0.0-beta-3/release-notes.md index 4bdc7c8234..3d849562b0 100644 --- a/content/markdown/docs/4.0.0-beta-3/release-notes.md +++ b/content/markdown/docs/4.0.0-beta-3/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-beta-3 diff --git a/content/markdown/docs/4.0.0-beta-4/release-notes.md b/content/markdown/docs/4.0.0-beta-4/release-notes.md index 41bc2ae9b3..071bb5b0cf 100644 --- a/content/markdown/docs/4.0.0-beta-4/release-notes.md +++ b/content/markdown/docs/4.0.0-beta-4/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-beta-4 diff --git a/content/markdown/docs/4.0.0-beta-5/release-notes.md b/content/markdown/docs/4.0.0-beta-5/release-notes.md index a60db76568..e75ea3f9dc 100644 --- a/content/markdown/docs/4.0.0-beta-5/release-notes.md +++ b/content/markdown/docs/4.0.0-beta-5/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-beta-5 diff --git a/content/markdown/docs/4.0.0-rc-1/release-notes.md b/content/markdown/docs/4.0.0-rc-1/release-notes.md index 5e0372f216..103ed6e63c 100644 --- a/content/markdown/docs/4.0.0-rc-1/release-notes.md +++ b/content/markdown/docs/4.0.0-rc-1/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-rc-1 @@ -53,7 +53,7 @@ Notable changes include: ## Known Issues Several minor issues were found post release, with most of them having simple workarounds. Search the JIRA -for known issues and workarounds. +for known issues and workarounds. Also, please test and report issues, if you happen to find any problem. diff --git a/content/markdown/docs/4.0.0-rc-2/release-notes.md b/content/markdown/docs/4.0.0-rc-2/release-notes.md index 97afc88571..539dac8702 100644 --- a/content/markdown/docs/4.0.0-rc-2/release-notes.md +++ b/content/markdown/docs/4.0.0-rc-2/release-notes.md @@ -1,23 +1,23 @@ # Release Notes – Maven 4.0.0-rc-2 @@ -68,6 +68,7 @@ Contact the extensions' developers team to know their plans regarding supporting # Change log ## Improvements + * [[MNG-5729]](https://issues.apache.org/jira/browse/MNG-5729) Use monotonic time measurements by @gnodet in [#1965](https://github.com/apache/maven/pull/1965) * [[MNG-8394]](https://issues.apache.org/jira/browse/MNG-8394) Event bridge and properties fix by @cstamas in [#1937](https://github.com/apache/maven/pull/1937) * [[MNG-8403]](https://issues.apache.org/jira/browse/MNG-8403) Maven ITs use maven-executor by @cstamas in [#1940](https://github.com/apache/maven/pull/1940) @@ -76,6 +77,7 @@ Contact the extensions' developers team to know their plans regarding supporting * [[MNG-8419]](https://issues.apache.org/jira/browse/MNG-8419)[[MNG-8424]](https://issues.apache.org/jira/browse/MNG-8424) Too aggressive warning for pre-Maven4 passwords by @cstamas in [#1970](https://github.com/apache/maven/pull/1970) ## Bug fixes + * IT: Move ITs off maven-shared-utils by @cstamas in [#1941](https://github.com/apache/maven/pull/1941) * [[MNG-8389]](https://issues.apache.org/jira/browse/MNG-8389) MavenExReq lacks u/p/i settings file paths by @cstamas in [#1939](https://github.com/apache/maven/pull/1939) * [[MNG-8391]](https://issues.apache.org/jira/browse/MNG-8391) Wrong effective model when conflicting values come from parents and profiles by @gnodet in [#1942](https://github.com/apache/maven/pull/1942) @@ -105,11 +107,13 @@ Contact the extensions' developers team to know their plans regarding supporting * [[MNG-8414]](https://issues.apache.org/jira/browse/MNG-8414) The consumer pom should warn if not able to downgrade the model version to 4.0.0 by @gnodet in [#1981](https://github.com/apache/maven/pull/1981) ## Dependency upgrade + * [[MNG-8420]](https://issues.apache.org/jira/browse/MNG-8420) Bump jlineVersion from 3.27.1 to 3.28.0 by @dependabot in [#1962](https://github.com/apache/maven/pull/1962) * [[MNG-8430]](https://issues.apache.org/jira/browse/MNG-8430) Resolver 2.0.5 by @cstamas in [#1975](https://github.com/apache/maven/pull/1975) * [[MNG-8427]](https://issues.apache.org/jira/browse/MNG-8427) Bump PlexusSecDispatcher to 4.0.3 by @cstamas in [#1959](https://github.com/apache/maven/pull/1959) ## Full changelog + https://github.com/apache/maven/compare/maven-4.0.0-rc-1...maven-4.0.0-rc-2 See [complete release notes for all versions][5] diff --git a/content/markdown/extensions/index.md b/content/markdown/extensions/index.md index fb38b1abc9..55d610d65b 100644 --- a/content/markdown/extensions/index.md +++ b/content/markdown/extensions/index.md @@ -9,7 +9,7 @@ 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 +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 @@ -27,10 +27,10 @@ it is possible to hook into Maven, e.g. to manipulate the lifecycle. ## Maintained By The Maven Project -| Extension | Version | Release Date | Description | Source Repository | Issue Tracker -|------------------------------------------------|---------|--------------|-----------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|-----------------| -|[Build Cache](./maven-build-cache-extension/) | 1.1.0 | 2023-11-27 | Maven Incremental Build and Cache (local and remote). | [Git](https://gitbox.apache.org/repos/asf/maven-build-cache-extension.git) / [GitHub](https://github.com/apache/maven-build-cache-extension/) | [Jira MBUILDCACHE](https://issues.apache.org/jira/browse/MBUILDCACHE) -|[Enforcer](/enforcer/maven-enforcer-extension/) | 3.4.1 | 2023-09-07 | Environmental constraint checking (Maven Version, JDK etc), User Custom Rule Execution. | [Git](https://gitbox.apache.org/repos/asf/maven-enforcer.git) / [GitHub](https://github.com/apache/maven-enforcer/) | [Jira MENFORCER](https://issues.apache.org/jira/browse/MENFORCER) +| Extension | Version | Release Date | Description | Source Repository | Issue Tracker | +|-------------------------------------------------|---------|--------------|-----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------| +| [Build Cache](./maven-build-cache-extension/) | 1.1.0 | 2023-11-27 | Maven Incremental Build and Cache (local and remote). | [Git](https://gitbox.apache.org/repos/asf/maven-build-cache-extension.git) / [GitHub](https://github.com/apache/maven-build-cache-extension/) | [Jira MBUILDCACHE](https://issues.apache.org/jira/browse/MBUILDCACHE) | +| [Enforcer](/enforcer/maven-enforcer-extension/) | 3.4.1 | 2023-09-07 | Environmental constraint checking (Maven Version, JDK etc), User Custom Rule Execution. | [Git](https://gitbox.apache.org/repos/asf/maven-enforcer.git) / [GitHub](https://github.com/apache/maven-enforcer/) | [Jira MENFORCER](https://issues.apache.org/jira/browse/MENFORCER) | ## Outside The Maven Land @@ -38,17 +38,18 @@ A number of other projects provide their own Maven extensions. This includes: ### Open Source -| Extension | Maintainer | Description -|-----------------------------------------------------------|---------------------|----------- -| [notifier](https://github.com/jcgay/maven-notifier) | Jean-Christophe Gay | A status notification will be send at the end of a Maven build. -| [polyglot](https://github.com/takari/polyglot-maven) | Takari | Polyglot for Maven is a set of extensions that allows the POM model to be written in dialects other than XML. -| [profiler](https://github.com/jcgay/maven-profiler) | Jean-Christophe Gay | A time execution recorder for Maven which log time taken by each mojo in your build lifecycle. -| [profiler](https://github.com/takari/maven-profiler) | Takari | The Tesla profiler is a simple EventSpy implementation that gathers timing information. -| [smart-builder](https://github.com/takari/takari-smart-builder) | Takari | The Takari Smart Builder is a replacement scheduling projects builds in a Maven multi-module build. -| [opentelemetry-maven-extension](https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/maven-extension) | The OpenTelemetry project | The OpenTelemetry Maven Extension instruments builds to gather execution details as traces for build performance optimization and for troubleshooting.
    OpenTelemetry traces can be visualized in open source observability solutions such as [Jaeger Tracing](https://www.jaegertracing.io) as well as in commercial solutions. +| Extension | Maintainer | Description | +|-------------------------------------------------------------------------------------------------------------------------|---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [notifier](https://github.com/jcgay/maven-notifier) | Jean-Christophe Gay | A status notification will be send at the end of a Maven build. | +| [polyglot](https://github.com/takari/polyglot-maven) | Takari | Polyglot for Maven is a set of extensions that allows the POM model to be written in dialects other than XML. | +| [profiler](https://github.com/jcgay/maven-profiler) | Jean-Christophe Gay | A time execution recorder for Maven which log time taken by each mojo in your build lifecycle. | +| [profiler](https://github.com/takari/maven-profiler) | Takari | The Tesla profiler is a simple EventSpy implementation that gathers timing information. | +| [smart-builder](https://github.com/takari/takari-smart-builder) | Takari | The Takari Smart Builder is a replacement scheduling projects builds in a Maven multi-module build. | +| [opentelemetry-maven-extension](https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/maven-extension) | The OpenTelemetry project | The OpenTelemetry Maven Extension instruments builds to gather execution details as traces for build performance optimization and for troubleshooting.
    OpenTelemetry traces can be visualized in open source observability solutions such as [Jaeger Tracing](https://www.jaegertracing.io) as well as in commercial solutions. | ### Commercial -| Extension | Maintainer | Description -|--------------------------------------------------------------------------|-------------|----------- -| [Gradle Enterprise](https://docs.gradle.com/enterprise/maven-extension/) | Gradle Inc. | Captures Maven build insights that can be viewed for free on [scans.gradle.com](https://scans.gradle.com/). Provides local and remote build caching, distributed test execution and predictive test selection for Maven builds connected to a Gradle Enterprise installation. +| Extension | Maintainer | Description | +|--------------------------------------------------------------------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [Gradle Enterprise](https://docs.gradle.com/enterprise/maven-extension/) | Gradle Inc. | Captures Maven build insights that can be viewed for free on [scans.gradle.com](https://scans.gradle.com/). Provides local and remote build caching, distributed test execution and predictive test selection for Maven builds connected to a Gradle Enterprise installation. | + diff --git a/content/markdown/faq-unoffical.md b/content/markdown/faq-unoffical.md index e4db239b97..a8aebf5e43 100644 --- a/content/markdown/faq-unoffical.md +++ b/content/markdown/faq-unoffical.md @@ -7,7 +7,7 @@ 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 +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 @@ -92,21 +92,21 @@ result: The usual cause of this is configuring maven-project-info-reports plugin and leaving out the 'index' report. ``` - - org.apache.maven.plugins - maven-project-info-reports-plugin - - - - index <--------- here! - dependencies - cim - scm-list - issue-tracking - - - - + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + index <--------- here! + dependencies + cim + scm-list + issue-tracking + + + + ``` ### How do I resolve the "< plugin name > does not exist or no valid version" error? @@ -223,7 +223,7 @@ public class MyMojo } } } -``` +``` ### Does the v4.0.0 POM include a < versions/ > element? @@ -631,7 +631,7 @@ _Sites & Reporting, Plugins and Lifecycle, Command Line_ ### How do I deploy my binary during the deploy phase? -``` xml +```xml org.apache.maven.plugins maven-assembly-plugin @@ -668,7 +668,7 @@ Configure the maven-jar-plugin and add your main class. -``` +``` ### How do I install artifacts to a remote repository? @@ -831,7 +831,8 @@ Run the mvn command with `-Dmaven.test.skip=true` argument. Also see [How do I run a build/package/deploy process without waiting for reports or unit tests, so that I can quickly deploy to an integration box?]( -#How_do_I_run_a_process_without_waiting_for_reports_or_unit_tests.3F). + +# How_do_I_run_a_process_without_waiting_for_reports_or_unit_tests.3F). _Sites & Reporting, General_ @@ -1039,7 +1040,7 @@ You need to specify the `` element to 1.3, i.e.
    -``` +``` ### How do I change the default remote repository? @@ -1982,6 +1983,7 @@ So there is a significant difference between the copying the file and using depl ### When I run `mvn release:prepare`, I get a build failure saying "Unable to tag SCM, File (...) already exists". When I run `mvn release:prepare`, I get a build failure saying + > Unable to tag SCM, File (...) already exists However, the tag does not exist. What is wrong? @@ -2079,4 +2081,4 @@ On the one hand the ampersand has to be encoded as entity with "&". On the o escaped for the command line. Result would be `mvn --encrypt-password test &Password` -Also a dollar sign ("$") has to be escaped for the command line. \ No newline at end of file +Also a dollar sign ("$") has to be escaped for the command line. diff --git a/content/markdown/general.md b/content/markdown/general.md index b74a43a5d1..733ca25ea8 100644 --- a/content/markdown/general.md +++ b/content/markdown/general.md @@ -7,7 +7,7 @@ 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 +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 @@ -118,7 +118,7 @@ you'll have to explicitly force the values in the compiler plugin configuration: -``` +``` ## Is it possible to create my own directory structure? @@ -328,6 +328,3 @@ You could use the following search engines: With MNG-5940 the release profile goal of the Maven Javadoc Plugin has been changed to `jar-no-fork`. Revise your configuration to avoid duplicate JAR upload. - - - diff --git a/content/markdown/glossary.md b/content/markdown/glossary.md index be97c98b1a..01950132fa 100644 --- a/content/markdown/glossary.md +++ b/content/markdown/glossary.md @@ -1,4 +1,5 @@ # Glossary + + This document describes some of the most common terms encountered while using Maven. These terms, that have an explicit meaning for Maven, can sometimes be confusing for newcomers. -- **Project**: Maven thinks in terms of projects. Everything that you - will build are projects. Those projects follow a well defined - "Project Object Model". Projects can depend on other projects, in - which case the latter are called "dependencies". A project may - consist of several subprojects, however these subprojects are - still treated equally as projects. - -- **Project Object Model (POM)**: The Project Object Model, almost - always referred as the POM for brevity, is the metadata that Maven - needs to work with your project. Its name is "project.xml" and it is - located in the root directory of each project. - -- **Artifact**: An artifact is something that is either produced or - used by a project. Examples of artifacts produced by Maven for a - project include: JARs, source and binary distributions, WARs. Each - artifact is identified by a [group id](#GroupId), an - artifact ID, a version, an extension and a classifier - (extension+classifier may be named by a [type](/ref/current/maven-core/artifact-handlers.html)). - -- **GroupId**: A group ID is a universally unique identifier for a - project. While this is often just the project name (eg. - `commons-collections`), it is helpful to use a fully-qualified - package name to distinguish it from other projects with a similar - name (eg. `org.apache.maven`). - -- **Dependency**: A typical Java project relies on libraries to build - and/or run. Those are called "dependencies" inside Maven. Those - dependencies are usually other projects' JAR artifacts, but are - referenced by the POM that describes them. - -- **Plug-in**: Maven is organized in plugins. Every piece of - functionality in Maven is provided by a plugin. Plugins provide - goals and use the metadata found in the POM to perform their task. - Examples of plugins are: jar, eclipse, war. Plugins are primarily - written in Java, but Maven also supports writing plug-ins in - Beanshell and Ant Scripting. - -- **Mojo**: A plugin written in Java consists of one or more mojos. A - mojo is a Java class that implements the - org.apache.maven.plugin.Mojo interface. This means that a mojo is - the implementation for a **goal** in a plugin. - -- **Repository**: - - Refer to [Introduction to - Repositories](./guides/introduction/introduction-to-repositories.html) - -- **Snapshots**: Projects can (and should) have a special version - including `SNAPSHOT` to indicate that they are a "work in progress", - and are not yet released. When a snapshot dependency is encountered, - it is always looked for in all remote repositories, and downloaded - again if newer than the local copy. - - The version can either be the string `SNAPSHOT` itself, indicating - "the very latest" development version, or something like - `1.1-SNAPSHOT`, indicating development that will be released as 1.1 - (i.e. newer than 1.0, but not yet 1.1). - -- **APT**: APT is a wiki-like format of documentation that Maven - currently understands. - - For information on how to create APT files, refer to the [Guide to - creating a site](./guides/mini/guide-site.html) document. - -- **XDoc**: XDoc is the format of documentation that Maven currently - understands. It is quite simple, and allows embedding XHTML within a - simple layout that is transformed into a uniform site. - - For information on how to create XDoc files, refer to the [Guide to - creating a site](./guides/mini/guide-site.html) document. - +- **Project**: Maven thinks in terms of projects. Everything that you + will build are projects. Those projects follow a well defined + "Project Object Model". Projects can depend on other projects, in + which case the latter are called "dependencies". A project may + consist of several subprojects, however these subprojects are + still treated equally as projects. + +- **Project Object Model (POM)**: The Project Object Model, almost + always referred as the POM for brevity, is the metadata that Maven + needs to work with your project. Its name is "project.xml" and it is + located in the root directory of each project. + +- **Artifact**: An artifact is something that is either produced or + used by a project. Examples of artifacts produced by Maven for a + project include: JARs, source and binary distributions, WARs. Each + artifact is identified by a [group id](#GroupId), an + artifact ID, a version, an extension and a classifier + (extension+classifier may be named by a [type](/ref/current/maven-core/artifact-handlers.html)). + +- **GroupId**: A group ID is a universally unique identifier for a + project. While this is often just the project name (eg. + `commons-collections`), it is helpful to use a fully-qualified + package name to distinguish it from other projects with a similar + name (eg. `org.apache.maven`). + +- **Dependency**: A typical Java project relies on libraries to build + and/or run. Those are called "dependencies" inside Maven. Those + dependencies are usually other projects' JAR artifacts, but are + referenced by the POM that describes them. + +- **Plug-in**: Maven is organized in plugins. Every piece of + functionality in Maven is provided by a plugin. Plugins provide + goals and use the metadata found in the POM to perform their task. + Examples of plugins are: jar, eclipse, war. Plugins are primarily + written in Java, but Maven also supports writing plug-ins in + Beanshell and Ant Scripting. + +- **Mojo**: A plugin written in Java consists of one or more mojos. A + mojo is a Java class that implements the + org.apache.maven.plugin.Mojo interface. This means that a mojo is + the implementation for a **goal** in a plugin. + +- **Repository**: + + Refer to [Introduction to + Repositories](./guides/introduction/introduction-to-repositories.html) + +- **Snapshots**: Projects can (and should) have a special version + including `SNAPSHOT` to indicate that they are a "work in progress", + and are not yet released. When a snapshot dependency is encountered, + it is always looked for in all remote repositories, and downloaded + again if newer than the local copy. + + The version can either be the string `SNAPSHOT` itself, indicating + "the very latest" development version, or something like + `1.1-SNAPSHOT`, indicating development that will be released as 1.1 + (i.e. newer than 1.0, but not yet 1.1). + +- **APT**: APT is a wiki-like format of documentation that Maven + currently understands. + + For information on how to create APT files, refer to the [Guide to + creating a site](./guides/mini/guide-site.html) document. + +- **XDoc**: XDoc is the format of documentation that Maven currently + understands. It is quite simple, and allows embedding XHTML within a + simple layout that is transformed into a uniform site. + + For information on how to create XDoc files, refer to the [Guide to + creating a site](./guides/mini/guide-site.html) document. diff --git a/content/markdown/guides/mini/guide-maven-ci-friendly.md b/content/markdown/guides/mini/guide-maven-ci-friendly.md index c28d19ffa6..acbd14cb84 100644 --- a/content/markdown/guides/mini/guide-maven-ci-friendly.md +++ b/content/markdown/guides/mini/guide-maven-ci-friendly.md @@ -9,7 +9,7 @@ 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 +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 @@ -18,6 +18,7 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> + Starting with Maven 3.5.0-beta-1 you can use the `${revision}`, `${sha1}` and/or `${changelist}` as placeholders for the version in your pom file. @@ -334,4 +335,5 @@ will look like this: ``` -[flatten-maven-plugin]: https://www.mojohaus.org/flatten-maven-plugin/ +[flatten-maven-plugin]: https://www.mojohaus.org/flatten-maven-plugin/ + diff --git a/content/markdown/guides/mini/guide-multiple-subprojects-4.md b/content/markdown/guides/mini/guide-multiple-subprojects-4.md index c3b6cc576e..e7091ebcc7 100644 --- a/content/markdown/guides/mini/guide-multiple-subprojects-4.md +++ b/content/markdown/guides/mini/guide-multiple-subprojects-4.md @@ -9,7 +9,7 @@ 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 +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 @@ -146,7 +146,7 @@ No special configuration is required to take advantage of the reactor, however i The following command line switches are available: -| Long | Short | Summary | Details | +| Long | Short | Summary | Details | |--------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------| | `--file` | `-f` | Selects an alternative POM file or directory containing a POM file. | [Collecting subprojects](#collecting-subprojects) | | `--non-recursive` | `-N` | Ignores any child subprojects that may be present in the starting POM. When combined with `-pl`, ignores the children of selected subprojects. | [Collecting subprojects](#collecting-subprojects) and [Relationships between subprojects](relationships-between-subprojects) | @@ -166,7 +166,7 @@ The following command line switches are available: The table below illustrates multiple scenarios which have changed between Maven 3 and 4. They assume a project structure as depicted above. -| Scenario | Outcome (in order) | Maven 3 | Maven 4 | +| Scenario | Outcome (in order) | Maven 3 | Maven 4 | |--------------------------------------------------------------------|------------------------------------------------------------------|----------------------------------------------------------------|---------------------------------------------------------------| | Build an aggregator and its children | subproject-c, subproject-c-1, subproject-c-2 | `mvn compile -pl subproject-c, subproject-c-1, subproject-c-2` | `mvn compile -pl subproject-c` | | Build an aggregator and ignore its children | subproject-c, subproject-c-1, subproject-c-2 | `mvn compile -pl subproject-c` | `mvn compile -pl subproject-c -N` | @@ -180,4 +180,3 @@ as depicted above. * [Chapter 6. A Multi-module Project (Maven by Example)](http://books.sonatype.com/mvnex-book/reference/multimodule.html) - does not include Maven 4 changes! - diff --git a/content/markdown/guides/mini/guide-resolver-transport.md b/content/markdown/guides/mini/guide-resolver-transport.md index 2199a0c915..a227462423 100644 --- a/content/markdown/guides/mini/guide-resolver-transport.md +++ b/content/markdown/guides/mini/guide-resolver-transport.md @@ -1,4 +1,5 @@ # Guide for Resolver Transport + Historically, since Maven 2.x, the only transport used by Maven was Maven Wagon. Since the introduction of the Resolver in -Maven 3.x, it did "wrap" it in the `maven-resolver-transport-wagon` module, and continued to use it. Still, Wagon is -deeply integrated with the old Plexus DI container and many, if not all, of its configuration are bound to be set in +Maven 3.x, it did "wrap" it in the `maven-resolver-transport-wagon` module, and continued to use it. Still, Wagon is +deeply integrated with the old Plexus DI container and many, if not all, of its configuration are bound to be set in Plexus XML, which is not type safe, nor validated, nor future-proof. **Starting with Maven 3.9.0 release, the _default transport_ (the default transport used by Maven Resolver) @@ -30,7 +31,7 @@ Take a peek at the Resolver [architecture diagram](https://maven.apache.org/reso contains several implementations, and this number will probably increase. The Resolver contains configuration for many aspects, including transport (see the keys -prefixed with `aether.connector.`). They can be found on +prefixed with `aether.connector.`). They can be found on [resolver configuration page](https://maven.apache.org/resolver-archives/resolver-LATEST-1.x/configuration.html). **This page applies only to Maven 3.9.0 and newer.** @@ -99,9 +100,10 @@ for example to allow the user to tell Maven how long to wait before giving up on ``` + ## Low-level Resolver configuration -All configuration items mentioned in [Configuration Options](https://maven.apache.org/resolver-archives/resolver-LATEST-1.x/configuration.html) +All configuration items mentioned in [Configuration Options](https://maven.apache.org/resolver-archives/resolver-LATEST-1.x/configuration.html) which are not mapped by `server/configuration` (eg.httpHeaders, timeout) tag must be provided in special way. Some resolver configuration properties has a flag `Supports Repo ID Suffix`. @@ -122,7 +124,6 @@ aether.connector.http.preemptiveAuth.myRepositoryId=true it means that `preemptiveAuth` will be applied only for repository or mirror which has `id` as `myRepositoryId` - ### System level Configuration can be provided on global level as properties in `settings.xml` @@ -148,7 +149,7 @@ Configuration can be provided on global level as properties in `settings.xml` ``` **NOTICE** - - only profiles activated by `settings/activeProfiles` will be taken for consideration - you can not use `profile/activation` in such case +- only profiles activated by `settings/activeProfiles` will be taken for consideration - you can not use `profile/activation` in such case You can also use environment variable `MAVEN_OPTS` ot `MAVEN_ARGS` @@ -188,3 +189,4 @@ page(s) for detailed configuration options: * For Native HTTP transport detailed configuration user properties are [collected on this page](https://maven.apache.org/resolver-archives/resolver-LATEST-1.x/configuration.html). * For Wagon you want to use `-Dmaven.resolver.transport=wagon` user property and [configuration from this page](https://maven.apache.org/guides/mini/guide-http-settings.html). * For any third party transport, please refer to its own documentation. + diff --git a/content/markdown/guides/plugins/validation/index.md b/content/markdown/guides/plugins/validation/index.md index 573b7759c3..5ceafdcb52 100644 --- a/content/markdown/guides/plugins/validation/index.md +++ b/content/markdown/guides/plugins/validation/index.md @@ -9,7 +9,7 @@ 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 +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 @@ -34,10 +34,10 @@ and split in two categories based on what actions should be taken: ## Internal issues Internal Plugins Validation issues (project local) are issues discovered in Maven project configuration, like: - - - project using deprecated plugin goals ([MNG-7457](https://issues.apache.org/jira/browse/MNG-7457)), - - project using deprecated plugin parameters, - - project using read only plugin parameters ([MNG-7464](https://issues.apache.org/jira/browse/MNG-7464)). + +- project using deprecated plugin goals ([MNG-7457](https://issues.apache.org/jira/browse/MNG-7457)), +- project using deprecated plugin parameters, +- project using read only plugin parameters ([MNG-7464](https://issues.apache.org/jira/browse/MNG-7464)). In such cases, users can fix their project by fixing configuration by editing their POMs. Users should consult actual plugin documentation (and eventually try to update plugin to newer version). @@ -46,8 +46,8 @@ Users should consult actual plugin documentation (and eventually try to update p External Plugins Validation issues (non-configuration) are issues detected in plugin itself, like: - - plugin using old, deprecated Maven API, - - plugin declaring dependencies for Maven Core artifacts in wrong scope (should be `provided`). +- plugin using old, deprecated Maven API, +- plugin declaring dependencies for Maven Core artifacts in wrong scope (should be `provided`). External Plugins issues require to be fixed by plugin authors first. @@ -65,18 +65,17 @@ mvn -Dmaven.plugin.validation.excludes=plugin1-goupId:plugin1-artifactId:plugin1 Property `maven.plugin.validation` has tha same rule as `maven.plugin.validation` - can only be used on command line (not as property in POM) - ## Manage Plugin Validation verbosity In order to manage Plugin Validation verbosity, a Maven user property `-Dmaven.plugin.validation=...` can be used on command line (or injected: see below). Allowed values are: - - `NONE` - mute Plugin Validation completely, nothing will be reported, - - `INLINE` (default) - report only `Internal` issues in place where they occur, - - `BRIEF` - report `Internal` issues in place where they occur and list of plugins with `External` issues at the end of the build, - - `SUMMARY` - report list of plugins with `Internal` and `External` issues at the end of the build, - - `VERBOSE` - report `Internal` and `External` issues at the end of build in verbose mode. +- `NONE` - mute Plugin Validation completely, nothing will be reported, +- `INLINE` (default) - report only `Internal` issues in place where they occur, +- `BRIEF` - report `Internal` issues in place where they occur and list of plugins with `External` issues at the end of the build, +- `SUMMARY` - report list of plugins with `Internal` and `External` issues at the end of the build, +- `VERBOSE` - report `Internal` and `External` issues at the end of build in verbose mode. Configuration values for `maven.plugin.validation` are case insensitive, can only be used on command line (not as property in POM), like: @@ -85,14 +84,13 @@ mvn -Dmaven.plugin.validation=verbose ... ``` As a consequence: -- it can be added to `MAVEN_OPTS` or `MAVEN_ARGS` environment variables, +- it can be added to `MAVEN_OPTS` or `MAVEN_ARGS` environment variables, - it can also be added to `.mvn/maven.config` file in order to configure per project, - it can also be added as property in `settings.xml` file to change configuration globally. But it can not be used as a POM property in project `pom.xml`. -Please consult: - - [Configuring Apache Maven](/configure.html) - - [Settings reference](/settings.html) - +Please consult: +- [Configuring Apache Maven](/configure.html) +- [Settings reference](/settings.html) diff --git a/content/markdown/ide.md b/content/markdown/ide.md index 81a35b464e..f254ca39e1 100644 --- a/content/markdown/ide.md +++ b/content/markdown/ide.md @@ -1,4 +1,5 @@ # Apache Maven IDE Integration + + All popular development environments for the Java platform support Apache Maven. ## Apache NetBeans IDE @@ -28,9 +30,9 @@ For more information see the [NetBeans.org wiki page](http://wiki.netbeans.org/M ## Eclipse IDE - M2Eclipse - [M2Eclipse](https://www.eclipse.org/m2e/) is - the official Eclipse project for Maven integration for the Eclipse IDE. - +[M2Eclipse](https://www.eclipse.org/m2e/) is +the official Eclipse project for Maven integration for the Eclipse IDE. + Features include: - Launching Maven builds from within Eclipse @@ -42,8 +44,8 @@ Features include: - Quick fixes in the Java editor for looking up required dependencies/jars by the class or package name - Integration with other Eclipse tools, such as WTP, AJDT, Mylyn, Subclipse and others. -M2E dynamically integrates with your Maven projects with Eclipse while you make changes in the IDE. As -you change dependencies, or configurations of Maven plugins in your POMs M2E, will synchronize the +M2E dynamically integrates with your Maven projects with Eclipse while you make changes in the IDE. As +you change dependencies, or configurations of Maven plugins in your POMs M2E, will synchronize the Eclipse workspace with those changes. ## JetBrains IntelliJ IDEA diff --git a/content/markdown/issue-management.md b/content/markdown/issue-management.md index 76a1957be3..4248b64204 100644 --- a/content/markdown/issue-management.md +++ b/content/markdown/issue-management.md @@ -1,4 +1,5 @@ # Overview + + The Apache Maven Project Team would like to inform you that the Apache Maven 1.x has reached its end of life and is no longer supported. @@ -24,15 +26,15 @@ Apache Maven 1.x had its last release - version 1.1 - in June 2007. This means: -- security vulnerability reports will not be checked against the 1.x - branch -- the 1.x download pages will be removed. -- the latest 1.x release will be removed from the mirror system -- the 1.x branch in svn will move from /maven/maven-1/ to - /maven/archives/maven-1/ -- the links to the 1.x documentation will be moved from - https://maven.apache.org/maven-1.x/ to - https://maven.apache.org/archives/maven-1.x/ +- security vulnerability reports will not be checked against the 1.x + branch +- the 1.x download pages will be removed. +- the latest 1.x release will be removed from the mirror system +- the 1.x branch in svn will move from /maven/maven-1/ to + /maven/archives/maven-1/ +- the links to the 1.x documentation will be moved from + https://maven.apache.org/maven-1.x/ to + https://maven.apache.org/archives/maven-1.x/ The Apache Maven Team. diff --git a/content/markdown/maven-2.x-eol.md b/content/markdown/maven-2.x-eol.md index f19a8fa4ba..383c750fa7 100644 --- a/content/markdown/maven-2.x-eol.md +++ b/content/markdown/maven-2.x-eol.md @@ -1,4 +1,5 @@ # End Of Life Apache Maven 2.x + + Apache Maven 2.x has reached its end of life and is no longer supported. Apache Maven 2.x had its last release - version 2.2.1 - in November 2009. @@ -25,10 +27,9 @@ This means: - security vulnerability reports will not be checked against the 2.x branch - the 2.x download pages will be removed -- the latest 2.x release will be removed from the mirror system +- the latest 2.x release will be removed from the mirror system - the links to any 2.x specific documentation will be moved to [Maven 2.x Archives](https://maven.apache.org/archives/maven-2.x/) - ## List Of Last Plugins Versions Which Support Maven 2.x This list contains the list of plugins with the last version that @@ -38,61 +39,61 @@ the reference to the last version of plugins you can use. NOTE: If you find plugins which are not mentioned or issues please report on the users mailing list. -|Plugin (current docs)|Type\*|Version|Release Date|Description| -|---|---|---|---|---| -|**Core plugins**||||**Plugins corresponding to default core phases (ie. clean, compile). They may have multiple goals as well**| -|[clean](/plugins/maven-clean-plugin/)|B|[2.6.1](/plugins-archives/maven-clean-plugin-2.6.1)|2014-10-26|Clean up after the build| -|[compiler](/plugins/maven-compiler-plugin)|B|[3.3](/plugins-archives/maven-compiler-plugin-3.3)|2015-03-26|Compiles Java sources| -|[deploy](/plugins/maven-deploy-plugin)|B|[2.8.2](/plugins-archives/maven-deploy-plugin-2.8.2)|2014-08-27|Deploy the built artifact to the remote repository| -|[failsafe](/surefire/maven-failsafe-plugin)|B|[2.19.1](/surefire-archives/surefire-2.19.1/maven-failsafe-plugin)|2016-01-03|Run the JUnit integration tests in an isolated classloader| -|[install](/plugins/maven-install-plugin)|B|[2.5.2](/plugins-archives/maven-install-plugin-2.5.2)|2014-08-27|Install the built artifact into the local repository| -|[resources](/plugins/maven-resources-plugin)|B|[2.7](/plugins-archives/maven-resources-plugin-2.7)|2014-09-29|Copy the resources to the output directory for including in the JAR| -|[site](/plugins/maven-site-plugin)|B|[2.4](/plugins-archives/maven-site-plugin-2.4)|2012-04-03|Generate a site for the current project| -|[surefire](/surefire/maven-surefire-plugin)|B|[2.19.1](/surefire-archives/surefire-2.19.1/maven-surefire-plugin)|2016-01-03|Run the JUnit unit tests in an isolated classloader| -|[verifier](/plugins/maven-verifier-plugin)|B|[1.1](/plugins-archives/maven-verifier-plugin-1.1)|2015-04-14|Useful for integration tests - verifies the existence of certain conditions| -|**Packaging types/tools**||||**These plugins relate to packaging respective artifact types**| -|[ear](/plugins/maven-ear-plugin)|B|[2.10.1](/plugins-archives/maven-ear-plugin-2.10.1)|2015-06-27|Generate an EAR from the current project| -|[ejb](/plugins/maven-ejb-plugin)|B|[2.5.1](/plugins-archives/maven-ejb-plugin-2.5.1)|2015-06-20|Build an EJB (and optional client) from the current project| -|[jar](/plugins/maven-jar-plugin)|B|[2.6](/plugins-archives/maven-jar-plugin-2.6)|2015-03-09|Build a JAR from the current project| -|[rar](/plugins/maven-rar-plugin)|B|[2.4](/plugins-archives/maven-rar-plugin-2.4)|2014-09-08|Build a RAR from the current project| -|[war](/plugins/maven-war-plugin)|B|[2.6](/plugins-archives/maven-war-plugin-2.6)|2015-01-08|Build a WAR from the current project| -|[app-client/acr](/plugins/maven-acr-plugin)|B|[1.1](/plugins-archives/maven-acr-plugin-1.1)|2014-09-02|Build a JavaEE application client from the current project| -|[shade](/plugins/maven-shade-plugin)|B|[1.7.1](/plugins-archives/maven-shade-plugin-1.7.1)|2012-06-27|Build an Uber-JAR from the current project, including dependencies| -|[source](/plugins/maven-source-plugin)|B|[2.4](/plugins-archives/maven-source-plugin-2.4)|2014-10-07|Build a source-JAR from the current project| -|**Reporting plugins**||||**Plugins which generate reports, are configured as reports in the POM and run under the site generation lifecycle**| -|[changelog](/plugins/maven-changelog-plugin)|R|[2.3](/plugins-archives/maven-changelog-plugin-2.3)|2014-06-24|Generate a list of recent changes from your SCM| -|[changes](/plugins/maven-changes-plugin)|B+R|[2.11](/plugins-archives/maven-changes-plugin-2.11)|2014-09-28|Generate a report from an issue tracker or a change document| -|[checkstyle](/plugins/maven-checkstyle-plugin)|B+R|[2.15](/plugins-archives/maven-checkstyle-plugin-2.14)|2015-03-20|Generate a Checkstyle report| -|[doap](/plugins/maven-doap-plugin)|B|[1.2](/plugins-archives/maven-doap-plugin-1.2)|2015-03-17|Generate a Description of a Project (DOAP) file from a POM| -|[docck](/plugins/maven-docck-plugin)|B|[1.1](/plugins-archives/maven-docck-plugin-1.1)|2015-04-03|Documentation checker plugin| -|[javadoc](/plugins/maven-javadoc-plugin)|B+R|[2.10.3](/plugins-archives/maven-javadoc-plugin-2.10.3)|2015-04-14|Generate Javadoc for the project| -|[jxr](/jxr/maven-jxr-plugin)|R|[2.5](/jxr-archives/jxr-2.5/maven-jxr-plugin)|2014-11-02|Generate a source cross reference| -|[linkcheck](/plugins/maven-linkcheck-plugin)|R|[1.2](/plugins-archives/maven-linkcheck-plugin-1.2)|2014-10-08|Generate a Linkcheck report of your project’s documentation| -|[pmd](/plugins/maven-pmd-plugin)|B+R|[3.4](/plugins-archives/maven-pmd-plugin-3.4)|2015-02-03|Generate a PMD report| -|[project-info-reports](/plugins/maven-project-info-reports-plugin)|R|[2.8](/plugins-archives/maven-project-info-reports-plugin-2.8)|2015-01-05|Generate standard project reports| -|[surefire-report](/surefire/maven-surefire-report-plugin)|R|[2.19.1](/surefire-archives/surefire-2.19.1/maven-surefire-report-plugin)|2016-01-03|Generate a report based on the results of unit tests| -|**Tools**||||**These are miscellaneous tools available through Maven by default**| -|[ant](/plugins/maven-ant-plugin)|B|[2.4](/plugins-archives/maven-ant-plugin-2.4)|2014-12-15|Generate an Ant build file for the project| -|[antrun](/plugins/maven-antrun-plugin)|B|[1.8](/plugins-archives/maven-antrun-plugin-1.8)|2014-12-26|Run a set of ant tasks from a phase of the build| -|[archetype](/archetype/maven-archetype-plugin)|B|[2.3](/archetype-archives/archetype-2.3/maven-archetype-plugin)|2015-03-05|Generate a skeleton project structure from an archetype| -|[assembly](/plugins/maven-assembly-plugin)|B|[2.5.4](/plugins-archives/maven-assembly-plugin-2.5.4)|2015-04-27|Build an assembly (distribution) of sources and/or binaries| -|[dependency](/plugins/maven-dependency-plugin)|B+R|[2.10](/plugins-archives/maven-dependency-plugin-2.10)|2015-01-27|Dependency manipulation (copy, unpack) and analysis| -|[enforcer](/enforcer/maven-enforcer-plugin)|B|[1.4.1](/enforcer-archives/enforcer-1.4.1/maven-enforcer-plugin)|2015-08-23|Environmental constraint checking (Maven Version, JDK etc), User Custom Rule Execution| -|[gpg](/plugins/maven-gpg-plugin)|B|[1.6](/plugins-archives/maven-gpg-plugin-1.6)|2015-01-19|Create signatures for the artifacts and poms| -|[help](/plugins/maven-help-plugin)|B|[2.2](/plugins-archives/maven-help-plugin-2.2)|2013-02-23|Get information about the working environment for the project| -|[invoker](/plugins/maven-invoker-plugin)|B+R|[1.10](/plugins-archives/maven-invoker-plugin-1.10)|2015-04-03|Run a set of Maven projects and verify the output| -|[jarsigner](/plugins/maven-jarsigner-plugin)|B|[1.4](/plugins-archives/maven-jarsigner-plugin-1.4)|2015-01-21|Signs or verifies project artifacts| -|[patch](/plugins/maven-patch-plugin)|B|[1.2](/plugins-archives/maven-patch-plugin-1.2)|2015-03-09|Use the gnu patch tool to apply patch files to source code| -|[pdf](/plugins/maven-pdf-plugin)|B|[1.3](/plugins-archives/maven-pdf-plugin-1.3)|2015-02-16|Generate a PDF version of your project’s documentation| -|[plugin](/plugin-tools/maven-plugin-plugin)|B+R|[3.4](/plugins-archives/maven-plugin-plugin-3.4)|2015-01-04|Create a Maven plugin descriptor for any mojos found in the source tree, to include in the JAR| -|[release](/plugins/maven-release-plugin)|B|[2.5.2](/maven-release-archives/maven-release-2.5.2/maven-release-plugin)|2015-04-18|Release the current project - updating the POM and tagging in the SCM| -|[remote-resources](/plugins/maven-remote-resources-plugin)|B|[1.5](/plugins-archives/maven-remote-resources-plugin-1.5)|2013-08-14|Copy remote resources to the output directory for inclusion in the artifact| -|[repository](/plugins/maven-repository-plugin)|B|[2.4](/plugins-archives/maven-repository-plugin-2.4)|2015-02-22|Plugin to help with repository-based tasks| -|[scm](/scm/maven-scm-plugin)|B|[1.9.4](/scm-archives/scm-1.9.4/maven-scm-plugin)|2015-04-01|Execute SCM commands for the current project| -|[scm-publish](/plugins/maven-scm-publish-plugin)|B|[1.0-beta-2](/plugins-archives/maven-scm-publish-plugin-1.0-beta-2)|2012-11-01|Publish your Maven website to a scm location| -|[stage](/plugins/maven-stage-plugin)|B|[1.0](/plugins-archives/maven-stage-plugin-1.0)|2015-03-03|Assists with release staging and promotion| -|[toolchains](/plugins/maven-toolchains-plugin)|B|[1.1](/plugins-archives/maven-toolchains-plugin-1.1)|2014-11-11|Allows to share configuration across plugins| -|**IDEs**||||**Plugins that simplify integration with integrated developer environments**| -|[eclipse](/plugins/maven-eclipse-plugin)|B|[2.10](/plugins-archives/maven-eclipse-plugin-2.10)|2015-05-28|Generate an Eclipse project file for the current project| +| Plugin (current docs) | Type\* | Version | Release Date | Description | +|--------------------------------------------------------------------|--------|---------------------------------------------------------------------------|--------------|----------------------------------------------------------------------------------------------------------------------| +| **Core plugins** |||| **Plugins corresponding to default core phases (ie. clean, compile). They may have multiple goals as well** | +| [clean](/plugins/maven-clean-plugin/) | B | [2.6.1](/plugins-archives/maven-clean-plugin-2.6.1) | 2014-10-26 | Clean up after the build | +| [compiler](/plugins/maven-compiler-plugin) | B | [3.3](/plugins-archives/maven-compiler-plugin-3.3) | 2015-03-26 | Compiles Java sources | +| [deploy](/plugins/maven-deploy-plugin) | B | [2.8.2](/plugins-archives/maven-deploy-plugin-2.8.2) | 2014-08-27 | Deploy the built artifact to the remote repository | +| [failsafe](/surefire/maven-failsafe-plugin) | B | [2.19.1](/surefire-archives/surefire-2.19.1/maven-failsafe-plugin) | 2016-01-03 | Run the JUnit integration tests in an isolated classloader | +| [install](/plugins/maven-install-plugin) | B | [2.5.2](/plugins-archives/maven-install-plugin-2.5.2) | 2014-08-27 | Install the built artifact into the local repository | +| [resources](/plugins/maven-resources-plugin) | B | [2.7](/plugins-archives/maven-resources-plugin-2.7) | 2014-09-29 | Copy the resources to the output directory for including in the JAR | +| [site](/plugins/maven-site-plugin) | B | [2.4](/plugins-archives/maven-site-plugin-2.4) | 2012-04-03 | Generate a site for the current project | +| [surefire](/surefire/maven-surefire-plugin) | B | [2.19.1](/surefire-archives/surefire-2.19.1/maven-surefire-plugin) | 2016-01-03 | Run the JUnit unit tests in an isolated classloader | +| [verifier](/plugins/maven-verifier-plugin) | B | [1.1](/plugins-archives/maven-verifier-plugin-1.1) | 2015-04-14 | Useful for integration tests - verifies the existence of certain conditions | +| **Packaging types/tools** |||| **These plugins relate to packaging respective artifact types** | +| [ear](/plugins/maven-ear-plugin) | B | [2.10.1](/plugins-archives/maven-ear-plugin-2.10.1) | 2015-06-27 | Generate an EAR from the current project | +| [ejb](/plugins/maven-ejb-plugin) | B | [2.5.1](/plugins-archives/maven-ejb-plugin-2.5.1) | 2015-06-20 | Build an EJB (and optional client) from the current project | +| [jar](/plugins/maven-jar-plugin) | B | [2.6](/plugins-archives/maven-jar-plugin-2.6) | 2015-03-09 | Build a JAR from the current project | +| [rar](/plugins/maven-rar-plugin) | B | [2.4](/plugins-archives/maven-rar-plugin-2.4) | 2014-09-08 | Build a RAR from the current project | +| [war](/plugins/maven-war-plugin) | B | [2.6](/plugins-archives/maven-war-plugin-2.6) | 2015-01-08 | Build a WAR from the current project | +| [app-client/acr](/plugins/maven-acr-plugin) | B | [1.1](/plugins-archives/maven-acr-plugin-1.1) | 2014-09-02 | Build a JavaEE application client from the current project | +| [shade](/plugins/maven-shade-plugin) | B | [1.7.1](/plugins-archives/maven-shade-plugin-1.7.1) | 2012-06-27 | Build an Uber-JAR from the current project, including dependencies | +| [source](/plugins/maven-source-plugin) | B | [2.4](/plugins-archives/maven-source-plugin-2.4) | 2014-10-07 | Build a source-JAR from the current project | +| **Reporting plugins** |||| **Plugins which generate reports, are configured as reports in the POM and run under the site generation lifecycle** | +| [changelog](/plugins/maven-changelog-plugin) | R | [2.3](/plugins-archives/maven-changelog-plugin-2.3) | 2014-06-24 | Generate a list of recent changes from your SCM | +| [changes](/plugins/maven-changes-plugin) | B+R | [2.11](/plugins-archives/maven-changes-plugin-2.11) | 2014-09-28 | Generate a report from an issue tracker or a change document | +| [checkstyle](/plugins/maven-checkstyle-plugin) | B+R | [2.15](/plugins-archives/maven-checkstyle-plugin-2.14) | 2015-03-20 | Generate a Checkstyle report | +| [doap](/plugins/maven-doap-plugin) | B | [1.2](/plugins-archives/maven-doap-plugin-1.2) | 2015-03-17 | Generate a Description of a Project (DOAP) file from a POM | +| [docck](/plugins/maven-docck-plugin) | B | [1.1](/plugins-archives/maven-docck-plugin-1.1) | 2015-04-03 | Documentation checker plugin | +| [javadoc](/plugins/maven-javadoc-plugin) | B+R | [2.10.3](/plugins-archives/maven-javadoc-plugin-2.10.3) | 2015-04-14 | Generate Javadoc for the project | +| [jxr](/jxr/maven-jxr-plugin) | R | [2.5](/jxr-archives/jxr-2.5/maven-jxr-plugin) | 2014-11-02 | Generate a source cross reference | +| [linkcheck](/plugins/maven-linkcheck-plugin) | R | [1.2](/plugins-archives/maven-linkcheck-plugin-1.2) | 2014-10-08 | Generate a Linkcheck report of your project’s documentation | +| [pmd](/plugins/maven-pmd-plugin) | B+R | [3.4](/plugins-archives/maven-pmd-plugin-3.4) | 2015-02-03 | Generate a PMD report | +| [project-info-reports](/plugins/maven-project-info-reports-plugin) | R | [2.8](/plugins-archives/maven-project-info-reports-plugin-2.8) | 2015-01-05 | Generate standard project reports | +| [surefire-report](/surefire/maven-surefire-report-plugin) | R | [2.19.1](/surefire-archives/surefire-2.19.1/maven-surefire-report-plugin) | 2016-01-03 | Generate a report based on the results of unit tests | +| **Tools** |||| **These are miscellaneous tools available through Maven by default** | +| [ant](/plugins/maven-ant-plugin) | B | [2.4](/plugins-archives/maven-ant-plugin-2.4) | 2014-12-15 | Generate an Ant build file for the project | +| [antrun](/plugins/maven-antrun-plugin) | B | [1.8](/plugins-archives/maven-antrun-plugin-1.8) | 2014-12-26 | Run a set of ant tasks from a phase of the build | +| [archetype](/archetype/maven-archetype-plugin) | B | [2.3](/archetype-archives/archetype-2.3/maven-archetype-plugin) | 2015-03-05 | Generate a skeleton project structure from an archetype | +| [assembly](/plugins/maven-assembly-plugin) | B | [2.5.4](/plugins-archives/maven-assembly-plugin-2.5.4) | 2015-04-27 | Build an assembly (distribution) of sources and/or binaries | +| [dependency](/plugins/maven-dependency-plugin) | B+R | [2.10](/plugins-archives/maven-dependency-plugin-2.10) | 2015-01-27 | Dependency manipulation (copy, unpack) and analysis | +| [enforcer](/enforcer/maven-enforcer-plugin) | B | [1.4.1](/enforcer-archives/enforcer-1.4.1/maven-enforcer-plugin) | 2015-08-23 | Environmental constraint checking (Maven Version, JDK etc), User Custom Rule Execution | +| [gpg](/plugins/maven-gpg-plugin) | B | [1.6](/plugins-archives/maven-gpg-plugin-1.6) | 2015-01-19 | Create signatures for the artifacts and poms | +| [help](/plugins/maven-help-plugin) | B | [2.2](/plugins-archives/maven-help-plugin-2.2) | 2013-02-23 | Get information about the working environment for the project | +| [invoker](/plugins/maven-invoker-plugin) | B+R | [1.10](/plugins-archives/maven-invoker-plugin-1.10) | 2015-04-03 | Run a set of Maven projects and verify the output | +| [jarsigner](/plugins/maven-jarsigner-plugin) | B | [1.4](/plugins-archives/maven-jarsigner-plugin-1.4) | 2015-01-21 | Signs or verifies project artifacts | +| [patch](/plugins/maven-patch-plugin) | B | [1.2](/plugins-archives/maven-patch-plugin-1.2) | 2015-03-09 | Use the gnu patch tool to apply patch files to source code | +| [pdf](/plugins/maven-pdf-plugin) | B | [1.3](/plugins-archives/maven-pdf-plugin-1.3) | 2015-02-16 | Generate a PDF version of your project’s documentation | +| [plugin](/plugin-tools/maven-plugin-plugin) | B+R | [3.4](/plugins-archives/maven-plugin-plugin-3.4) | 2015-01-04 | Create a Maven plugin descriptor for any mojos found in the source tree, to include in the JAR | +| [release](/plugins/maven-release-plugin) | B | [2.5.2](/maven-release-archives/maven-release-2.5.2/maven-release-plugin) | 2015-04-18 | Release the current project - updating the POM and tagging in the SCM | +| [remote-resources](/plugins/maven-remote-resources-plugin) | B | [1.5](/plugins-archives/maven-remote-resources-plugin-1.5) | 2013-08-14 | Copy remote resources to the output directory for inclusion in the artifact | +| [repository](/plugins/maven-repository-plugin) | B | [2.4](/plugins-archives/maven-repository-plugin-2.4) | 2015-02-22 | Plugin to help with repository-based tasks | +| [scm](/scm/maven-scm-plugin) | B | [1.9.4](/scm-archives/scm-1.9.4/maven-scm-plugin) | 2015-04-01 | Execute SCM commands for the current project | +| [scm-publish](/plugins/maven-scm-publish-plugin) | B | [1.0-beta-2](/plugins-archives/maven-scm-publish-plugin-1.0-beta-2) | 2012-11-01 | Publish your Maven website to a scm location | +| [stage](/plugins/maven-stage-plugin) | B | [1.0](/plugins-archives/maven-stage-plugin-1.0) | 2015-03-03 | Assists with release staging and promotion | +| [toolchains](/plugins/maven-toolchains-plugin) | B | [1.1](/plugins-archives/maven-toolchains-plugin-1.1) | 2014-11-11 | Allows to share configuration across plugins | +| **IDEs** |||| **Plugins that simplify integration with integrated developer environments** | +| [eclipse](/plugins/maven-eclipse-plugin) | B | [2.10](/plugins-archives/maven-eclipse-plugin-2.10) | 2015-05-28 | Generate an Eclipse project file for the current project | \* **B**uild or **R**eporting plugin diff --git a/content/markdown/maven-conventions.md b/content/markdown/maven-conventions.md index 66d2aa7451..dd95900d8b 100644 --- a/content/markdown/maven-conventions.md +++ b/content/markdown/maven-conventions.md @@ -1,4 +1,5 @@ # Maven Conventions + + This document defines some conventions that Maven recommends projects adopt. This is especially important if you intend to distribute your project publicly. @@ -43,8 +45,8 @@ you distribute. The artifact ID may or may not overlap the group ID. For example: - maven : maven-core - maven : wagon-api + maven : maven-core + maven : wagon-api As previously mentioned, the artifact ID should be the basis of the filename for the project, as by default Maven will use that and the @@ -57,7 +59,7 @@ Following these guidelines are particularly encouraged when distributing via the Maven Repository, to ensure that it can easily fit alongside other projects and reduce the risk of conflicts and confusion. -More information about conventions for Maven coordinates is available +More information about conventions for Maven coordinates is available in the [Guide to Naming Conventions](./guides/mini/guide-naming-conventions.html). ## Directory Structure diff --git a/content/markdown/maven-jsr330.md b/content/markdown/maven-jsr330.md index 20bf8eab1a..0825fd7a9c 100644 --- a/content/markdown/maven-jsr330.md +++ b/content/markdown/maven-jsr330.md @@ -1,4 +1,5 @@ # Maven & JSR-330 + + ## Why JSR-330? Maven has a long history of using dependency injection (DI) by way of [Plexus][plexus], so the intent of using @@ -41,10 +43,10 @@ If you are interested in migrating from Plexus Annotations to JSR-330, Sisu has When you use JSR-330 in Maven plugins or extensions, there are two things you need to setup in your build: 1. First you want a dependency on `javax.inject` so you can use the `@Inject`, `@Named`, and `@Singleton` annotations -in your plugins and extensions (eventually in addition to [Plexus annotations][plexus-annotations]). + in your plugins and extensions (eventually in addition to [Plexus annotations][plexus-annotations]). 2. Second you need to setup the [`sisu-maven-plugin`][sisu-maven-plugin] to index the JSR-330 components -you want made available to Maven. The [`sisu-maven-plugin`][sisu-maven-plugin] creates its index in `META-INF/sisu/javax.inject.Named` (eventually in addition to [`plexus-component-metadata`][plexus-component-metadata]). + you want made available to Maven. The [`sisu-maven-plugin`][sisu-maven-plugin] creates its index in `META-INF/sisu/javax.inject.Named` (eventually in addition to [`plexus-component-metadata`][plexus-component-metadata]). ### Implementation Details @@ -56,7 +58,6 @@ if you use JSR-330 components in dependencies that do not contain an index, thos not be discovered. This is a compromise that is reasonable given Maven is a command-line tool where startup speed is important. - ## How to use JSR-330 in plugins Let\'s take a look at an example plugin: If you want to look at this example project, you can find the code [in Maven Core ITs][jsr330-plugin]. @@ -209,3 +210,4 @@ public class Jsr330Mojo [sisu-maven-plugin]: https://eclipse.org/sisu/docs/api/org.eclipse.sisu.mojos/ [MNG-5343]: https://issues.apache.org/jira/browse/MNG-5343 [SisuPlexusMigration]: https://eclipse-sisu.github.io/sisu-project/plexus/index.html + diff --git a/content/markdown/maven-logging.md b/content/markdown/maven-logging.md index 0ff724d1d8..8a1f4ca72d 100644 --- a/content/markdown/maven-logging.md +++ b/content/markdown/maven-logging.md @@ -1,4 +1,5 @@ # Maven 3.1.x logging + + Information about your use of this website is collected using server access logs and a tracking cookie. The collected information consists of the following: -1. The IP address from which you access the website; -2. The type of browser and operating system you use to access our site; -3. The date and time you access our site; -4. The pages you visit; and -5. The addresses of pages from where you followed a link to our site. +1. The IP address from which you access the website; +2. The type of browser and operating system you use to access our site; +3. The date and time you access our site; +4. The pages you visit; and +5. The addresses of pages from where you followed a link to our site. Part of this information is gathered using a tracking cookie set by the [Google Analytics](https://www.google.com/analytics/) service and handled diff --git a/content/markdown/project-faq.md b/content/markdown/project-faq.md index 025b3216a4..cbd0c4187f 100644 --- a/content/markdown/project-faq.md +++ b/content/markdown/project-faq.md @@ -7,7 +7,7 @@ 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 +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 @@ -80,4 +80,4 @@ In particular, you should ensure that optional dependencies are marked as such, only dependencies are marked with the given scope. Ensure that the dependency exists in the Maven system and matches first. -See the format of the [project descriptor](/maven-model/maven.html) for more information. \ No newline at end of file +See the format of the [project descriptor](/maven-model/maven.html) for more information. diff --git a/content/markdown/project-roles.md b/content/markdown/project-roles.md index 6c50781a9d..111ccc2c12 100644 --- a/content/markdown/project-roles.md +++ b/content/markdown/project-roles.md @@ -1,4 +1,5 @@ # Apache Maven Project Roles + + The Apache Maven project is not just the software it produces. The Apache Foundation has a phrase: "Community over code" which is about how it is the community that grows around a project that is the most important thing. -Everyone reading this is part of the Apache Maven community, -and even if you are an invisible part of the Apache Maven +Everyone reading this is part of the Apache Maven community, +and even if you are an invisible part of the Apache Maven community you are still part of the community. There are many ways we can sort the people in our @@ -31,7 +33,7 @@ community, we present the following as one such way. Please do not take offence if you disagree with this categorisation. It is important to remember that we are a *community* not a *clique* so you are entitled to disagree -with others in the community. +with others in the community. *Note:* the right to disagree with other people's opinions comes with the responsibility not to deliberately cause offence @@ -42,7 +44,7 @@ or discord. ### Lurkers People who do not use Maven at all, but have an interest in -the project. This can include people who are developing +the project. This can include people who are developing competing software tools to Apache Maven. It would be great if the lurkers would come out of the shadows @@ -59,14 +61,14 @@ one) People who use Maven, but do not actively join the community. This does not include people who are: subscribed to one of the -Maven mailing lists; active in a Maven user community (e.g. +Maven mailing lists; active in a Maven user community (e.g. something like [stackoverflow][1]; submitting bug reports; etc.). Maybe Apache Maven is the perfect product for you and does exactly what you need and want, and you never have a need to ask questions about how to use Maven as it is immediately obvious to you how one is supposed to use Maven… If that is the -case, could you please consider taking a more active role in +case, could you please consider taking a more active role in our community, as Maven is none of the above to our minds and you might have a point of view that we have missed. @@ -76,10 +78,10 @@ let us know: * Submitting bug reports is the best way to let us know about bugs, * Asking questions on the [Users Mailing List][2] is the best way -get answers to questions. + get answers to questions. As a last resort, other Maven user communities are another route -to getting more involved in the Maven community, but keep in +to getting more involved in the Maven community, but keep in mind that Apache Foundation projects are supposed to encourage the community at the ASF, so you will get more eyes and a quicker response if you engage directly with the ASF hosted @@ -97,33 +99,33 @@ We hope your bug report has received some attention. If it hasn't, why don't you see if you can fix the issue yourself and submit a patch? -We hope your question was answered. If it hasn't, think of +We hope your question was answered. If it hasn't, think of all the other users who's questions sit unanswered, how many of them do you know an answer for (even if only a partial answer)? Why don't you respond to their questions with the answers you know? If everybody did that, your question would have an answer. Pay it forward! -We hope your experience in one of the other Maven user +We hope your experience in one of the other Maven user communities is a positive one, so why not join the canonical -Maven user community and subscribe to the [Maven user list][2]? +Maven user community and subscribe to the [Maven user list][2]? ### Contributors -People who use Maven, have joined the Maven community and contribute +People who use Maven, have joined the Maven community and contribute back to the community. This includes people who: * Submit reports of the results of testing proposed releases of -Maven and Maven plugins, + Maven and Maven plugins, * Answer questions on the [Maven user list][2] (or even other Maven user communities), * Submit patches to resolve reported bugs in Maven or Maven plugins hosted at Apache, * Help curate bug reports by identifying duplicate reports, or -related issues. + related issues. We wrote [a guide for contributors](/guides/development/guide-helping.html). -Keep up the contributions, you are a critical member of our -community. If we like what we see, we may even ask you to +Keep up the contributions, you are a critical member of our +community. If we like what we see, we may even ask you to consider taking a formal role in our project. ## Formal roles @@ -131,14 +133,14 @@ consider taking a formal role in our project. ### [Committers](https://www.apache.org/foundation/how-it-works.html#committers) These are those people who have been given write access to the -Apache Maven code repository and have a signed +Apache Maven code repository and have a signed [Contributor License Agreement (CLA)][4] on file with the ASF. The Apache Maven project has [a number of conventions][5] which should be followed. -Committers are responsible for ensuring that every file they -commit is covered by a valid CLA. +Committers are responsible for ensuring that every file they +commit is covered by a valid CLA. Committers who would like to become PMC members should try to find ways to demonstrate the responsibilities listed in the PMC Members @@ -147,9 +149,9 @@ that the committer is ready for the responsibility. ### Emeritus committers -If a committer decides that they cannot currently continue with -the responsibilities of a committer, they may elect to go -emeritus. +If a committer decides that they cannot currently continue with +the responsibilities of a committer, they may elect to go +emeritus. At any time, an emeritus committer for the Apache Maven project may decide that they want to become an active committer again @@ -158,23 +160,23 @@ policy is that committer role reinstatement is automatic. ### [Project Management Committee](https://www.apache.org/foundation/how-it-works.html#pmc-members) -The Project Management Committee as a whole is the entity that -controls the project. Membership of the Project Management Committee +The Project Management Committee as a whole is the entity that +controls the project. Membership of the Project Management Committee is decided by the board of the Apache Software Foundation, based on nominations from the Project Management Committee. -It is a long standing tradition of the Apache Maven Project that +It is a long standing tradition of the Apache Maven Project that the Project Management Committee reviews the active committers approximately every 6 months with a view to determining whether -any of those committers would be suitable candidates to +any of those committers would be suitable candidates to recommend to the board for inclusion on the PMC. It should be noted that this is simply a tradition and not a right. There are significant responsibilities that accompany the PMC role and as such, if a person is not demonstrating those responsibilities, they may not be nominated or their nomination -may be rejected by the board. Such decisions are not a -reflection of the technical competence of the person, and -indeed the person themselves may even decide to turn down the +may be rejected by the board. Such decisions are not a +reflection of the technical competence of the person, and +indeed the person themselves may even decide to turn down the nomination. For that reason the results of such periodic reviews are kept confidential. @@ -185,7 +187,7 @@ The Project Management Committee has the following responsibilities: * Ensure the project remains a healthy top-level project of the Apache Foundation (if a PMC member wants the project to be hosted elsewhere they should resign from the PMC stating their reason - if the PMC shrinks beyond the minimal viable - size then as a result of a desire by the bulk of the PMC to move the project + size then as a result of a desire by the bulk of the PMC to move the project elsewhere, the Board of the Apache Foundation will take that into account when moving the project into the Foundation's Attic) * Prepare reports as required by the Board of the Apache Foundation and @@ -205,7 +207,7 @@ The Project Management Committee has the following responsibilities: are covered by a compatible license. * Voting on release artifacts; * Ensure [Developers Conventions][5] are followed, or updated/improved if necessary; -* Knows and respects the goals and processes of the community and helps educate +* Knows and respects the goals and processes of the community and helps educate newer members about them. #### Standards for Community Commitment @@ -218,7 +220,7 @@ functioning of the committee itself. The Apache Foundation currently does not have a policy requiring projects to cross-promote. For example Subversion is an Apache project, yet projects -are free to choose from Subversion and Git (a non-Apache project) for source +are free to choose from Subversion and Git (a non-Apache project) for source control. When considering integration of technologies within Maven, there is @@ -233,11 +235,11 @@ are thus: will be doing the integration. Where a PMC member is advocating a specific technology, they should declare -any interest / involvement that they have in that technology or a competing -technology - irrespective of whether the project is an Apache project or a +any interest / involvement that they have in that technology or a competing +technology - irrespective of whether the project is an Apache project or a project hosted elsewhere. -PMC members with a stated interest / involvement should try to abstain from +PMC members with a stated interest / involvement should try to abstain from making binding votes in either direction with respect to the relevant technology choices. @@ -256,49 +258,49 @@ It is self evident that the opportunity for review is much greater if the code is committed to the project's source control as early as possible. Similarly small commits are easier to review than large commits. -There is nothing inherently wrong with maintaining a fork of the Maven +There is nothing inherently wrong with maintaining a fork of the Maven codebase outside of the Apache Foundation. Individual developers can have their own style of working and may prefer to work in a fork so that they can throw away failed experiments with less visibility (though it could be -argued that the visibility of such failed experiments can be valuable -documentation for others). As soon as changes in that -fork are identified (by the people maintaining the fork) which should be -brought back to the project those changes should be introduced into at -least a branch hosted on the Apache Maven source control in order to -facilitate the easier review by the community. The PMC should encourage -by example the early committing of such changes from a fork (that they -are involved in maintaining) back to Apache Maven source control. +argued that the visibility of such failed experiments can be valuable +documentation for others). As soon as changes in that +fork are identified (by the people maintaining the fork) which should be +brought back to the project those changes should be introduced into at +least a branch hosted on the Apache Maven source control in order to +facilitate the easier review by the community. The PMC should encourage +by example the early committing of such changes from a fork (that they +are involved in maintaining) back to Apache Maven source control. Similarly, if a fork is being hosted elsewhere in order to get contributions from other talented individuals, the PMC members should endeavour to bring those individuals and their talent to the project as committers. Finally, where a fork is hosted outside of Apache hardware, there is less -traceability of the code provenance, for example Git commits can be squashed +traceability of the code provenance, for example Git commits can be squashed and history re-written to mask or otherwise hide the source of contributions. This does not mean that code coming from an external fork inherently has such issues, instead it means that the requirements for review and verification -of provenance grow exponentially when dealing with large sets of changes +of provenance grow exponentially when dealing with large sets of changes originating from a long running fork hosted outside of Apache foundation source control. Anybody maintaining a long running fork should be aware of the risk that review obligations may grow above the time capabilities of the PMC and committers such that when they eventually decide to try and -bring the changes in their fork back to the Apache Maven project their +bring the changes in their fork back to the Apache Maven project their contribution may end up being rejected on the basis of the review of a large set of changes being too difficult/time-consuming. ### [Project Management Chair](https://www.apache.org/foundation/how-it-works.html#pmc-chair) -For various legal reasons, there are certain things that the Apache +For various legal reasons, there are certain things that the Apache Software Foundation can only delegate to an officer of the foundation. The Project Management Committee is responsible for nominating -the lucky victim who gets made an officer of the foundation (subject +the lucky victim who gets made an officer of the foundation (subject to the approval of the board). This person then becomes the interface between the board and the project management committee. They do not have any other -additional gravitas in the project, it is the Project Management +additional gravitas in the project, it is the Project Management Committee as a whole that is responsible for the direction of the project. If things break down and there is no consensus and there is no clear @@ -309,11 +311,12 @@ can act as an ultimate decision maker, however, by this point the board of the foundation must already be well aware of the situation and should be actively monitoring the chair. - [1]: https://stackoverflow.com/questions/tagged/maven - [2]: mailto:users@maven.apache.org - [3]: mailto:private@maven.apache.org - [4]: https://www.apache.org/licenses/#clas - [5]: /developers/index.html#Developers_Conventions - [6]: https://www.apache.org/legal/3party.html - [7]: https://www.apache.org/legal/3party.html#category-a - [8]: https://www.apache.org/legal/3party.html#category-b +[1]: https://stackoverflow.com/questions/tagged/maven +[2]: mailto:users@maven.apache.org +[3]: mailto:private@maven.apache.org +[4]: https://www.apache.org/licenses/#clas +[5]: /developers/index.html#Developers_Conventions +[6]: https://www.apache.org/legal/3party.html +[7]: https://www.apache.org/legal/3party.html#category-a +[8]: https://www.apache.org/legal/3party.html#category-b + diff --git a/content/markdown/reference/maven-classloading.md b/content/markdown/reference/maven-classloading.md index d21ab99349..ca50b28254 100644 --- a/content/markdown/reference/maven-classloading.md +++ b/content/markdown/reference/maven-classloading.md @@ -1,4 +1,5 @@ # Maven classloading + + ![](maven-classloading.png) ## ClassWorlds bootstrap classloader @@ -60,7 +62,7 @@ Core extensions are loaded as part of Maven runtime startup and disposed of as p Maven extensions classloader aggregates packages exported by core extensions realms. It also loads additional classpath entries specified in `-Dmaven.ext.class.path` command line parameter. -Maven extensions classloader is created only when core extensions are configured for the build. If created, it will be set as "container realm" in the Plexus container. +Maven extensions classloader is created only when core extensions are configured for the build. If created, it will be set as "container realm" in the Plexus container. ## Maven API classloader @@ -78,7 +80,7 @@ Build extension classloaders use ClassWorld bootstrap classloader as the parent, ## Project classloaders -Project classloader aggregates Maven API packages, packages exported by project build extensions. +Project classloader aggregates Maven API packages, packages exported by project build extensions. Project classloaders use Maven API classloader as the parent and import exported classes from project build extension realms. Legacy Maven 2.x build extensions, i.e. extensions that consist of single artifact which does not include `META-INF/maven/extension.xml` descriptor, are directly in project classloaders. @@ -98,8 +100,7 @@ Reporting plugins are wired differently still, but reporting plugins are a speci ## Exported artifacts and packages -Maven Core, Session and Build Extensions use `META-INF/maven/extension.xml` descriptor to declare API packages and artifacts exported by the classloader. - +Maven Core, Session and Build Extensions use `META-INF/maven/extension.xml` descriptor to declare API packages and artifacts exported by the classloader. ```xml @@ -119,3 +120,4 @@ Maven Core, Session and Build Extensions use `META-INF/maven/extension.xml` desc ``` + diff --git a/content/markdown/repositories/artifacts.md b/content/markdown/repositories/artifacts.md index 4e90109adb..e959e14af1 100644 --- a/content/markdown/repositories/artifacts.md +++ b/content/markdown/repositories/artifacts.md @@ -9,7 +9,7 @@ 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 +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 @@ -19,15 +19,15 @@ specific language governing permissions and limitations under the License. --> -An Artifact is "anything" (any file) that can be addressed using its coordinates, and Maven downloads, installs or -deploys for you. Most of them are POMs and JARs but +An Artifact is "anything" (any file) that can be addressed using its coordinates, and Maven downloads, installs or +deploys for you. Most of them are POMs and JARs but an artifact can be really anything. A very important thing about artifacts is that they have coordinates, so they are not "just files", but they are files that are in some way addressable by Maven. -Artifact coordinates, are most often represented as `groupId:artifactId:version`, or GAV in short or when -informally used (please note that Artifact coordinates has more fields, but for brevity we still call the -coordinates "GAV", not "GAVCE"). The artifact coordinates uniquely describe the artifact you are referring to, -but does not tell anything about its source (or origin). It is up to Maven to figure out (or you to tell Maven +Artifact coordinates, are most often represented as `groupId:artifactId:version`, or GAV in short or when +informally used (please note that Artifact coordinates has more fields, but for brevity we still call the +coordinates "GAV", not "GAVCE"). The artifact coordinates uniquely describe the artifact you are referring to, +but does not tell anything about its source (or origin). It is up to Maven to figure out (or you to tell Maven how to figure it out). A word about uniqueness: as stated above, GAV coordinates uniquely identifies artifact, but only **within one repository**. @@ -43,7 +43,7 @@ That's due the fact, that while for Maven, "everything is artifact" (internally) The artifacts that Maven (internally) uses has following (for our topic related) properties: -| Name | Description | +| Name | Description | |-------------|---------------------------------------------------| | groupId | The artifact group | | artifactId | The artifact id | @@ -52,24 +52,24 @@ The artifacts that Maven (internally) uses has following (for our topic related) | classifier | The artifact distinguishing classifier (optional) | | extension | The artifact extension (default: "jar") | -One property worth explaining is a bit of special one: `baseVersion` that is actually derived/linked to -`version` (or the other way around, depending on the context): for release artifacts, it holds the same value as -`version`, whereas for snapshot artifacts, it holds the "non-timestamped snapshot version". For example, -for snapshot version "1.0-20220119.164608-1", the `baseVersion` would have the value "1.0-SNAPSHOT". -So, `version` and `baseVersion` are linked, derived from each other, but **they have different values only in +One property worth explaining is a bit of special one: `baseVersion` that is actually derived/linked to +`version` (or the other way around, depending on the context): for release artifacts, it holds the same value as +`version`, whereas for snapshot artifacts, it holds the "non-timestamped snapshot version". For example, +for snapshot version "1.0-20220119.164608-1", the `baseVersion` would have the value "1.0-SNAPSHOT". +So, `version` and `baseVersion` are linked, derived from each other, but **they have different values only in case of snapshots**. -Important note about Artifacts: the fact is an artifact a snapshot or not, should be queried with method +Important note about Artifacts: the fact is an artifact a snapshot or not, should be queried with method `Artifact#isSnapshot()`. ## But where do I set Artifact extension? In short, nowhere. Or maybe "you rarely have to". Maven POM (where you declare your project, parent project, -dependencies, plugins and other), maps those elements onto artifact coordinates with some extra logic. +dependencies, plugins and other), maps those elements onto artifact coordinates with some extra logic. In case of "project" and "parent project" aka POMs (after POM made into effective POM, ie. parent values inherited): -| Artifact Property | Project POM (pom.xml) | POM Artifact | +| Artifact Property | Project POM (pom.xml) | POM Artifact | |-------------------|-----------------------|----------------| | groupId | `project/groupId` | -> groupId | | artifactId | `project/artifactId` | -> artifactId | @@ -80,7 +80,7 @@ In case of "project" and "parent project" aka POMs (after POM made into effectiv In case of "build plugins" and "build extensions", as they are JARs, this is how corresponding elements are mapped (for build extension change the XML path prefix to `project/build/extensions/extension[x]`): -| Artifact Property | Plugin in Project POM | Plugin/Extension Artifact | +| Artifact Property | Plugin in Project POM | Plugin/Extension Artifact | |-------------------|----------------------------------------------|---------------------------| | groupId | `project/build/plugins/plugin[x]/groupId` | -> groupId | | artifactId | `project/build/plugins/plugin[x]/artifactId` | -> artifactId | @@ -90,7 +90,7 @@ In case of "build plugins" and "build extensions", as they are JARs, this is how And finally, in case of "dependencies", this is the mapping (no, scope is NOT part of artifact coordinates): -| Artifact Property | Dependency in Project POM | Dependency Artifact | +| Artifact Property | Dependency in Project POM | Dependency Artifact | |-------------------|-------------------------------------------------|-------------------------------------------| | groupId | `project/dependencies/dependency[x]/groupId` | -> groupId | | artifactId | `project/dependencies/dependency[x]/artifactId` | -> artifactId | @@ -106,7 +106,7 @@ a "packaging" (lifecycle mapping) by providing `ArtifactHandler` components with Maven Core out of the box [defines following "types" (handled by same named `ArtifactHandler` components)](/ref/current/maven-core/artifact-handlers.html): -| Type Name | Extension | Classifier | +| Type Name | Extension | Classifier | |--------------|-----------|--------------| | pom | `pom` | | | jar | `jar` | | @@ -122,15 +122,15 @@ Maven Core out of the box [defines following "types" (handled by same named `Art | **any** | any | | From table above, we can see that if we define the dependency type as "war", we will hit the "war" handler, that will -result in using the `war` extension (which may not be obvious, as the type and extension we end up with are the same, but internally this -indirection does happen). The "test-jar" is more obvious, as it translates to `jar` extension. Finally, the **any** -last row will be used if none above matches, hence in that case your "type" is used just as "extension", for example -you can write `tar.gz` for dependency, and you will end up with extension `tar.gz` (all this happens -because as there is no artifact handler named "tar.gz" in table above). Still, you should be aware that this table +result in using the `war` extension (which may not be obvious, as the type and extension we end up with are the same, but internally this +indirection does happen). The "test-jar" is more obvious, as it translates to `jar` extension. Finally, the **any** +last row will be used if none above matches, hence in that case your "type" is used just as "extension", for example +you can write `tar.gz` for dependency, and you will end up with extension `tar.gz` (all this happens +because as there is no artifact handler named "tar.gz" in table above). Still, you should be aware that this table above may be extended by various plugins and extensions you use in your build! -Also, this has "interesting" consequences, consider for example following Artifact: -`org.project:reusable-test-support:1.0:tests:jar`. With type handlers above, maybe surprisingly, the dependency to +Also, this has "interesting" consequences, consider for example following Artifact: +`org.project:reusable-test-support:1.0:tests:jar`. With type handlers above, maybe surprisingly, the dependency to this very same artifact can be described in two ways: ```xml @@ -159,11 +159,11 @@ value for this property, while in second type defines it). Note: In this very case, using the first way is somewhat "explicit", and is recommended way. Not so for the cases when type handler carries some important extra information (like some custom packaging), where using `type` -is more appropriate. Simply put, in this case the type "test-jar" is like an alias for ordinary JARs with "tests" +is more appropriate. Simply put, in this case the type "test-jar" is like an alias for ordinary JARs with "tests" classifier. ## Summary In short, this is how various Maven bits like "project", "parent project", "plugin", "extension" and "dependency" -have artifact coordinates mapped from POM elements. Using this knowledge, we can always deduce the artifact coordinate +have artifact coordinates mapped from POM elements. Using this knowledge, we can always deduce the artifact coordinate of these POM elements. diff --git a/content/markdown/repositories/index.md b/content/markdown/repositories/index.md index 4bc6aa8c35..b3a1de220a 100644 --- a/content/markdown/repositories/index.md +++ b/content/markdown/repositories/index.md @@ -9,7 +9,7 @@ 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 +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 @@ -20,7 +20,7 @@ under the License. --> Apache Maven uses repositories to store artifacts. Your dependencies are being downloaded from repositories, -and artifacts you build are being stored (installed, uploaded) into repositories as well. This is one of the +and artifacts you build are being stored (installed, uploaded) into repositories as well. This is one of the fundamental concepts of Maven since its inception: Maven command line tool and Maven Repositories were mold together and developed since the beginning of Maven project itself. @@ -28,20 +28,20 @@ and developed since the beginning of Maven project itself. - JBoss - central (default) - Maven - local repository - Repository Manager - settings.xml <mirrorOf> - pom.xml <repository> +JBoss +central (default) +Maven +local repository +Repository Manager +settings.xml <mirrorOf> +pom.xml <repository>

    See also the [Introduction to Repositories](/guides/introduction/introduction-to-repositories.html) and [Repository Layout](../repository/layout.html). -As you may know, Maven addresses artifacts using artifact coordinates. The artifact coordinates uniquely describe the artifact +As you may know, Maven addresses artifacts using artifact coordinates. The artifact coordinates uniquely describe the artifact you are referring to, but does not tell anything about its source (or origin). This is where Maven Repositories come into picture, that holds the artifacts laid out (published) according to Maven Repository Layout. And this is where the circle closes: artifacts, being laid out in defined layout, consumed and published diff --git a/content/markdown/repositories/layout.md b/content/markdown/repositories/layout.md index 10d45aaf59..776fcf5f0a 100644 --- a/content/markdown/repositories/layout.md +++ b/content/markdown/repositories/layout.md @@ -9,7 +9,7 @@ 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 +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 @@ -24,24 +24,24 @@ URI (file path, URL, it depends on context). Obviously, since Maven inception in For simplicity, we will cover current layout (aka "maven2" or "default"), as since Maven 3.x release, the deprecated "Maven1 layout" (aka "legacy") is not supported anymore. -This above implies following: if the repository contains a file that is "not on layout" (does not obey layout +This above implies following: if the repository contains a file that is "not on layout" (does not obey layout transformation rules discussed below), that file is "not addressable" by Maven coordinates, you cannot address that file in Maven nor make it to download it using GAV coordinates! The original premise of layout was simplicity: from historical perspective, a remote repository was expected to be run -by some computer with file storage (where artifacts were laid down) and served by a HTTP server, essentially publishing +by some computer with file storage (where artifacts were laid down) and served by a HTTP server, essentially publishing the files on file paths for consumption (mainly for HTTP GET requests). The transformation rule is quite simple for that matter: consider artifact properties below: -| Name | Transformation | Result example | +| Name | Transformation | Result example | |-------------|---------------------------------------------------------|------------------------------------------| | groupId | Replace "." (dot) characters with "/" (slash) character | `org.apache.maven` -> `org/apache/maven` | -| artifactId | none | `apache-maven` | -| version | none | `3.8.4` | -| baseVersion | none | (in this example same as version) | -| classifier | none | `bin` | -| extension | none | `tar.gz` | +| artifactId | none | `apache-maven` | +| version | none | `3.8.4` | +| baseVersion | none | (in this example same as version) | +| classifier | none | `bin` | +| extension | none | `tar.gz` | And using these properties transformed as above, we can construct following path (if classifier not present): diff --git a/content/markdown/repositories/local.md b/content/markdown/repositories/local.md index 6b39ae2525..2fc3cae447 100644 --- a/content/markdown/repositories/local.md +++ b/content/markdown/repositories/local.md @@ -9,7 +9,7 @@ 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 +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 @@ -26,18 +26,18 @@ While the local repository does reside on local filesystem, users should **never using plain file operations, but use the provided API instead. Reason for this strict expectation is that even today different implementations of local repository exists. Hence, "reverse engineering" the layout and direct access to locally cached or installed files may not only break in the future, but may also circumvent important -aspects like locking and synchronization, and so forth. Latest resolver even implements "split" local repository, -where user may configure local repository to split the installed and cached artifacts, hence to make them physically -split from each other. +aspects like locking and synchronization, and so forth. Latest resolver even implements "split" local repository, +where user may configure local repository to split the installed and cached artifacts, hence to make them physically +split from each other. -All these underlying changes remain hidden from code using local repository API, and hence, the code will +All these underlying changes remain hidden from code using local repository API, and hence, the code will be more robust and time proof. ## The `baseVersion` Artifact Property -As noted in [Layout](layout.md) page, locally built and installed (implies "to local repository") artifacts will use +As noted in [Layout](layout.md) page, locally built and installed (implies "to local repository") artifacts will use `baseVersion` while calculating layout. Hence, in this case both, `baseVersion` and `version` of them will both contain same value, the one ending with "SNAPSHOT" constant string, no transformation is applied to file name. -Snapshots pulled from remote and cached in local repository will have timestamped `version` property instead, hence +Snapshots pulled from remote and cached in local repository will have timestamped `version` property instead, hence they will have the full-blown timestamped version applied to file name. diff --git a/content/markdown/repositories/metadata.md b/content/markdown/repositories/metadata.md index 0dc8bec415..292c344540 100644 --- a/content/markdown/repositories/metadata.md +++ b/content/markdown/repositories/metadata.md @@ -9,7 +9,7 @@ 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 +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 @@ -28,7 +28,7 @@ Links: * [Reference documentation](/ref/current/maven-repository-metadata/) * [XML Schema](/xsd/repository-metadata-1.1.0.xsd) * [Modello model](https://gitbox.apache.org/repos/asf?p=maven.git;a=blob_plain;f=maven-repository-metadata/src/main/mdo/metadata.mdo;hb=HEAD) - and its [descriptor documentation](/ref/current/maven-repository-metadata/repository-metadata.html) +and its [descriptor documentation](/ref/current/maven-repository-metadata/repository-metadata.html) We distinguish 3 different kinds of metadata files (using GAV coordinates): * G level metadata @@ -42,7 +42,7 @@ Note: this is extreme example, and such artifact naming should be avoided! ## The G Level Metadata -| What | How | +| What | How | |----------------------------|-------------------------------| | Location | Path corresponding to groupId | | Repositories containing it | Release and Snapshots | @@ -60,7 +60,7 @@ coordinates of plugin, and will go for given version, or attempt to discover "la ## The A Level Metadata -| What | How | +| What | How | |----------------------------|----------------------------------| | Location | Path corresponding to artifactId | | Repositories containing it | Release and Snapshots | @@ -79,7 +79,7 @@ Example: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-jar ## The V Level Metadata -| What | How | +| What | How | |----------------------------|-----------------------------------| | Location | Path corresponding to baseVersion | | Repositories containing it | Snapshots only | diff --git a/content/markdown/repositories/remote.md b/content/markdown/repositories/remote.md index 1e4a81b9d5..0209cebb2d 100644 --- a/content/markdown/repositories/remote.md +++ b/content/markdown/repositories/remote.md @@ -9,7 +9,7 @@ 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 +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 @@ -37,29 +37,32 @@ sort of "version transformation" happens. We can distinguish two cases: ### Deploying Snapshot Artifact -Your POM locally usually contains snapshot versions in a form of a string that ends with "SNAPSHOT" constant string +Your POM locally usually contains snapshot versions in a form of a string that ends with "SNAPSHOT" constant string (for example "1.0-SNAPSHOT"). But, in case of deploy, this version is being transformed to a "timestamped snapshot" -on the fly (by Maven) and when you check the deployed result, you will see that artifact file does not end up with +on the fly (by Maven) and when you check the deployed result, you will see that artifact file does not end up with "SNAPSHOT" anymore, but a timestamp and build number. Also, during deploy, Maven will deploy required Maven V Level Metadata as well that will describe for consumers of this snapshot how to "reverse" this process. So, in case of snapshot deploy, version transformation happens in form of: + ``` 1.0-SNAPSHOT -> Maven (on the fly) -> 1.0-${YYYYMMDD.HHMMSS}-${counter} ``` -Where the date in `Etc/UTC` timezone (used in `YYYYMMDD.HHMMSS` format) is constant across deploy from same session (is time when Maven -Session was created), and counter is increased counter from previously deployed metadata (or if no + +Where the date in `Etc/UTC` timezone (used in `YYYYMMDD.HHMMSS` format) is constant across deploy from same session (is time when Maven +Session was created), and counter is increased counter from previously deployed metadata (or if no remote metadata exists, is initialized with 1). ### Consuming Snapshot Artifacts If your project depends on SNAPSHOT dependencies, the POM of your project usually contains `version` value that ends -with "SNAPSHOT" (for example "1.0-SNAPSHOT"), still, as we see above, remote repositories do NOT contain such versions, -but only timestamped ones. Maven snapshots are "moving targets", hence, during resolution Maven -will use the deployed metadata first, to figure out `baseVersion` -> `version` (timestamped) mapping, and only then +with "SNAPSHOT" (for example "1.0-SNAPSHOT"), still, as we see above, remote repositories do NOT contain such versions, +but only timestamped ones. Maven snapshots are "moving targets", hence, during resolution Maven +will use the deployed metadata first, to figure out `baseVersion` -> `version` (timestamped) mapping, and only then will fetch the required files. In case of consuming snapshot, the following transformation happens: + ``` 1.0-SNAPSHOT -> Remote V Level Repository Metadata -> 1.0-YYYYMMDD.HHMMS-X ``` diff --git a/content/markdown/repository-management.md b/content/markdown/repository-management.md index 9a3d42dab0..91c09dad67 100644 --- a/content/markdown/repository-management.md +++ b/content/markdown/repository-management.md @@ -1,4 +1,5 @@ # Best Practice - Using a Repository Manager + + A repository manager is a dedicated server application designed to manage repositories of binary components. -The usage of a repository manager is +The usage of a repository manager is considered an essential best practice for any significant usage of Maven. - ## Purpose A repository manager serves these essential purposes: * act as dedicated proxy server for public Maven repositories -(see [Maven Guide to Mirror Settings](./guides/mini/guide-mirror-settings.html)) -* provide repositories as a deployment destination for your Maven project -outputs + (see [Maven Guide to Mirror Settings](./guides/mini/guide-mirror-settings.html)) +* provide repositories as a deployment destination for your Maven project + outputs ## Benefits and Features Using a repository manager provides the following benefits and features: * significantly reduced number of downloads off remote repositories, saving time -and bandwidth resulting in increased build performance + and bandwidth resulting in increased build performance * improved build stability due to reduced reliance on external repositories * increased performance for interaction with remote SNAPSHOT repositories * potential for control of consumed and provided artifacts -* creates a central storage and access to artifacts and meta data about them -exposing build outputs to consumer such as other projects and developers, but -also QA or operations teams or even customers -* provides an effective platform for exchanging binary artifacts within -your organization and beyond without the need for building artifact from source +* creates a central storage and access to artifacts and meta data about them + exposing build outputs to consumer such as other projects and developers, but + also QA or operations teams or even customers +* provides an effective platform for exchanging binary artifacts within + your organization and beyond without the need for building artifact from source ## Available Repository Managers The following list (alphabetical order) of open source and commercial repository - managers are known to support the repository format used by Maven. Please refer to the respective linked web sites for further information about repository management in general +managers are known to support the repository format used by Maven. Please refer to the respective linked web sites for further information about repository management in general and the features provided by these products. * Artipie (open source) @@ -69,3 +70,4 @@ and the features provided by these products. * Sonatype Nexus Pro (commercial) * packagecloud.io (commercial) * Reposilite (open source) + diff --git a/content/markdown/repository/index.md b/content/markdown/repository/index.md index 6a6793ddc8..a76d2065f8 100644 --- a/content/markdown/repository/index.md +++ b/content/markdown/repository/index.md @@ -7,7 +7,7 @@ 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 +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 @@ -44,14 +44,14 @@ Maven `central` repository, even if they don't use Maven as their build tool. - standalone public artifact repositories - Apache - OSSRH - Producers - central index - archetype - repo - ibiblio - Google - Central Upload - \ No newline at end of file +standalone public artifact repositories +Apache +OSSRH +Producers +central index +archetype +repo +ibiblio +Google +Central Upload + diff --git a/content/markdown/repository/layout.md b/content/markdown/repository/layout.md index 1e8184e507..f3db4d7272 100644 --- a/content/markdown/repository/layout.md +++ b/content/markdown/repository/layout.md @@ -1,4 +1,5 @@ # Maven2 Repository Layout + + The syntax for running Maven is as follows: - mvn [options] [] [] + mvn [options] [] [] All available options are documented in the built-in help that you can access with - mvn -h + mvn -h The typical invocation for building a Maven project uses a Maven lifecycle phase. E.g. - mvn verify + mvn verify The built-in lifecycles and their most used phases, in order, are: @@ -40,15 +42,15 @@ The built-in lifecycles and their most used phases, in order, are: A fresh build of a project generating all packaged outputs and the documentation site and deploying it to a repository manager could be done with - mvn clean deploy site-deploy + mvn clean deploy site-deploy Just creating the package and installing it in the local repository for re-use from other projects can be done with - mvn install + mvn install And if you don't expect to re-use from other projects, use - mvn verify + mvn verify This is the most common build invocation for a Maven project. @@ -56,15 +58,15 @@ When not working with a project, and in some other use cases, you might want to a specific task implemented by a part of Maven - this is called a **goal** of a plugin. E.g.: - mvn archetype:generate + mvn archetype:generate or - mvn checkstyle:check + mvn checkstyle:check There are many different [plugins available](/plugins/) and they all implement different goals. - Further resources: * [Building a Project with Maven](./run-maven/index.html) + diff --git a/content/markdown/scm.md b/content/markdown/scm.md index b59d7e08fa..23b027c92f 100644 --- a/content/markdown/scm.md +++ b/content/markdown/scm.md @@ -7,7 +7,7 @@ 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 +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 @@ -16,9 +16,10 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> + - - Source Repository + +Source Repository # Source Repository @@ -45,6 +46,7 @@ manifest: 1. Install a Git client if needed and the [Google repo](https://android.googlesource.com/tools/repo) tool (see [manual install instructions](https://source.android.com/setup/build/downloading#installing-repo)). 2. Check out a new repo workspace and prepare master branch: + ``` repo init -u https://gitbox.apache.org/repos/asf/maven-sources.git` repo sync @@ -131,93 +133,93 @@ The components in Git are shown in the following table. | Content | Repository | Mirror | Issues | |:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------:|:-----------------------------------------------------------------------:| - [Apache Maven ACR Plugin](/plugins/maven-acr-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-acr-plugin.git`](https://gitbox.apache.org/repos/asf/maven-acr-plugin.git) | [GitHub](https://github.com/apache/maven-acr-plugin/) | [JIRA MACR](https://issues.apache.org/jira/projects/MACR) | - [Apache Maven Ant Plugin](/plugins/maven-ant-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-ant-plugin.git`](https://gitbox.apache.org/repos/asf/maven-ant-plugin.git) | [GitHub](https://github.com/apache/maven-ant-plugin/) | [JIRA MANT](https://issues.apache.org/jira/projects/MANT) - [Apache Maven AntRun Plugin](/plugins/maven-antrun-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-antrun-plugin.git`](https://gitbox.apache.org/repos/asf/maven-antrun-plugin.git) | [GitHub](https://github.com/apache/maven-antrun-plugin/) | [JIRA MANTRUN](https://issues.apache.org/jira/projects/MANTRUN) | - [Apache Maven Assembly Plugin](/plugins/maven-assembly-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git`](https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git) | [GitHub](https://github.com/apache/maven-assembly-plugin/) | [JIRA MASSEMBLY](https://issues.apache.org/jira/projects/MASSEMBLY) | - [Apache Maven Changelog Plugin](/plugins/maven-changelog-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-changelog-plugin.git`](https://gitbox.apache.org/repos/asf/maven-changelog-plugin.git) | [GitHub](https://github.com/apache/maven-changelog-plugin/) | [JIRA MCHANGELOG](https://issues.apache.org/jira/projects/MCHANGELOG) | - [Apache Maven Changes Plugin](/plugins/maven-changes-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-changes-plugin.git`](https://gitbox.apache.org/repos/asf/maven-changes-plugin.git) | [GitHub](https://github.com/apache/maven-changes-plugin/) | [JIRA MACHANGES](https://issues.apache.org/jira/projects/MACHANGES) | - [Apache Maven Checkstyle Plugin](/plugins/maven-checkstyle-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-checkstyle-plugin.git`](https://gitbox.apache.org/repos/asf/maven-checkstyle-plugin.git) | [GitHub](https://github.com/apache/maven-checkstyle-plugin/) | [JIRA MCHECKSTYLE](https://issues.apache.org/jira/projects/MCHECKSTYLE) | - [Apache Maven Clean Plugin](/plugins/maven-clean-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-clean-plugin.git`](https://gitbox.apache.org/repos/asf/maven-clean-plugin.git) | [GitHub](https://github.com/apache/maven-clean-plugin/) | [JIRA MCLEAN](https://issues.apache.org/jira/projects/MCLEAN) | - [Apache Maven Compiler Plugin](/plugins/maven-compiler-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-compiler-plugin.git`](https://gitbox.apache.org/repos/asf/maven-compiler-plugin.git) | [GitHub](https://github.com/apache/maven-compiler-plugin/) | [JIRA MCOMPILER](https://issues.apache.org/jira/projects/MCOMPILER) | - [Apache Maven Dependency Plugin](/plugins/maven-dependency-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git`](https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git) | [GitHub](https://github.com/apache/maven-dependency-plugin/) | [JIRA MDEP](https://issues.apache.org/jira/projects/MDEP) | - [Apache Maven Deploy Plugin](/plugins/maven-deploy-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-deploy-plugin.git`](https://gitbox.apache.org/repos/asf/maven-deploy-plugin.git) | [GitHub](https://github.com/apache/maven-deploy-plugin/) | [JIRA MDEPLOY](https://issues.apache.org/jira/projects/MDEPLOY) | - [Apache Maven DOAP Plugin](/plugins/maven-doap-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-doap-plugin.git`](https://gitbox.apache.org/repos/asf/maven-doap-plugin.git) | [GitHub](https://github.com/apache/maven-doap-plugin/) | [JIRA MDOAP](https://issues.apache.org/jira/projects/MDOAP) | - [Apache Maven EAR Plugin](/plugins/maven-ear-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-ear-plugin.git`](https://gitbox.apache.org/repos/asf/maven-ear-plugin.git) | [GitHub](https://github.com/apache/maven-ear-plugin/) | [JIRA MEAR](https://issues.apache.org/jira/projects/MEAR) | - [Apache Maven EJB Plugin](/plugins/maven-ejb-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-ejb-plugin.git`](https://gitbox.apache.org/repos/asf/maven-ejb-plugin.git) | [GitHub](https://github.com/apache/maven-ejb-plugin/) | [JIRA MEJB](https://issues.apache.org/jira/projects/MEJB) | - [Apache Maven GPG Plugin](/plugins/maven-gpg-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-gpg-plugin.git`](https://gitbox.apache.org/repos/asf/maven-gpg-plugin.git) | [GitHub](https://github.com/apache/maven-gpg-plugin/) | [JIRA MGPG](https://issues.apache.org/jira/projects/MGPG) | - [Apache Maven Help Plugin](/plugins/maven-help-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-help-plugin.git`](https://gitbox.apache.org/repos/asf/maven-help-plugin.git) | [GitHub](https://github.com/apache/maven-help-plugin/) | [JIRA MPH](https://issues.apache.org/jira/projects/MPH) | - [Apache Maven Install Plugin](/plugins/maven-install-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-install-plugin.git`](https://gitbox.apache.org/repos/asf/maven-install-plugin.git) | [GitHub](https://github.com/apache/maven-install-plugin/) | [JIRA MINSTALL](https://issues.apache.org/jira/projects/MINSTALL) | - [Apache Maven Invoker Plugin](/plugins/maven-invoker-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-invoker-plugin.git`](https://gitbox.apache.org/repos/asf/maven-invoker-plugin.git) | [GitHub](https://github.com/apache/maven-invoker-plugin/) | [JIRA MINVOKER](https://issues.apache.org/jira/projects/MINVOKER) | - [Apache Maven JAR Plugin](/plugins/maven-jar-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jar-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jar-plugin.git) | [GitHub](https://github.com/apache/maven-jar-plugin/) | [JIRA MJAR](https://issues.apache.org/jira/projects/MJAR) | - [Apache Maven Jarsigner Plugin](/plugins/maven-jarsigner-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jarsigner-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jarsigner-plugin.git) | [GitHub](https://github.com/apache/maven-jarsigner-plugin/) | [JIRA MJARSIGNER](https://issues.apache.org/jira/projects/MJARSIGNER) | - [Apache Maven Javadoc Plugin](/plugins/maven-javadoc-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git`](https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git) | [GitHub](https://github.com/apache/maven-javadoc-plugin/) | [JIRA MJAVADOC](https://issues.apache.org/jira/projects/MJAVADOC) | - [Apache Maven JDepRScan Plugin](/plugins/maven-jdeprscan-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git) | [GitHub](https://github.com/apache/maven-jdeprscan-plugin/) | [JIRA MJDEPRSCAN](https://issues.apache.org/jira/projects/MJDEPRSCAN) | - [Apache Maven JDeps Plugin](/plugins/maven-jdeps-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jdeps-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jdeps-plugin.git) | [GitHub](https://github.com/apache/maven-jdeps-plugin/) | [JIRA MJDEPS](https://issues.apache.org/jira/projects/MJDEPS) | - [Apache Maven JLink Plugin](/plugins/maven-jlink-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jlink-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jlink-plugin.git) | [GitHub](https://github.com/apache/maven-jlink-plugin/) | [JIRA MJLINK](https://issues.apache.org/jira/projects/MJLINK) | - [Apache Maven JMod Plugin](/plugins/maven-jmod-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jmod-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jmod-plugin.git) | [GitHub](https://github.com/apache/maven-jmod-plugin/) | [JIRA MJMOD](https://issues.apache.org/jira/projects/MJMOD) | - [Apache Maven Linkcheck Plugin](/plugins/maven-linkcheck-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-linkcheck-plugin.git`](https://gitbox.apache.org/repos/asf/maven-linkcheck-plugin.git) | [GitHub](https://github.com/apache/maven-linkcheck-plugin/) | [JIRA MLINKCHECK](https://issues.apache.org/jira/projects/MLINKCHECK) | - [Apache Maven PDF Plugin](/plugins/maven-pdf-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-pdf-plugin.git`](https://gitbox.apache.org/repos/asf/maven-pdf-plugin.git) | [GitHub](https://github.com/apache/maven-pdf-plugin/) | [JIRA MPDF](https://issues.apache.org/jira/projects/MPDF) | - [Apache Maven PMD Plugin](/plugins/maven-pmd-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git`](https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git) | [GitHub](https://github.com/apache/maven-pmd-plugin/) | [JIRA MPMD](https://issues.apache.org/jira/projects/MPMD) | - [Apache Maven Project Info Reports Plugin](/plugins/maven-project-info-reports-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-project-info-reports-plugin.git`](https://gitbox.apache.org/repos/asf/maven-project-info-reports-plugin.git) | [GitHub](https://github.com/apache/maven-project-info-reports-plugin/) | [JIRA MPIR](https://issues.apache.org/jira/projects/MPIR) | - [Apache Maven RAR Plugin](/plugins/maven-rar-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-rar-plugin.git`](https://gitbox.apache.org/repos/asf/maven-rar-plugin.git) | [GitHub](https://github.com/apache/maven-rar-plugin/) | [JIRA MRAR](https://issues.apache.org/jira/projects/MRAR) | - [Apache Maven Remote Resources Plugin](/plugins/maven-remote-resources-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-remote-resources-plugin.git`](https://gitbox.apache.org/repos/asf/maven-remote-resources-plugin.git) | [GitHub](https://github.com/apache/maven-remote-resources-plugin/) | [JIRA MRRESOURCES](https://issues.apache.org/jira/projects/MRRESOURCES) | - [Apache Maven Repository Plugin](/plugins/maven-repository-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-repository-plugin.git`](https://gitbox.apache.org/repos/asf/maven-repository-plugin.git) | [GitHub](https://github.com/apache/maven-repository-plugin/) | [JIRA MREPOSITORY](https://issues.apache.org/jira/projects/MREPOSITORY) | - [Apache Maven Resources Plugin](/plugins/maven-resources-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-resources-plugin.git`](https://gitbox.apache.org/repos/asf/maven-resources-plugin.git) | [GitHub](https://github.com/apache/maven-resources-plugin/) | [JIRA MRESOURCES](https://issues.apache.org/jira/projects/MRESOURCES) | - [Apache Maven SCM Publish Plugin](/plugins/maven-scm-publish-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-scm-publish-plugin.git`](https://gitbox.apache.org/repos/asf/maven-scm-publish-plugin.git) | [GitHub](https://github.com/apache/maven-scm-publish-plugin/) | [JIRA SCM](https://issues.apache.org/jira/projects/SCM) | - [Apache Maven Scripting Plugin](/plugins/maven-scripting-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-scripting-plugin.git`](https://gitbox.apache.org/repos/asf/maven-scripting-plugin.git) | [GitHub](https://github.com/apache/maven-scripting-plugin/) | [JIRA MSCRIPTING](https://issues.apache.org/jira/projects/MSCRIPTING) | - [Apache Maven Shade Plugin](/plugins/maven-shade-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-shade-plugin.git`](https://gitbox.apache.org/repos/asf/maven-shade-plugin.git) | [GitHub](https://github.com/apache/maven-shade-plugin/) | [JIRA MSHADE](https://issues.apache.org/jira/projects/MSHADE) | - [Apache Maven Site Plugin](/plugins/maven-site-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-site-plugin.git`](https://gitbox.apache.org/repos/asf/maven-site-plugin.git) | [GitHub](https://github.com/apache/maven-site-plugin/) | [JIRA MSITE](https://issues.apache.org/jira/projects/MSITE) | - [Apache Maven Source Plugin](/plugins/maven-source-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-source-plugin.git`](https://gitbox.apache.org/repos/asf/maven-source-plugin.git) | [GitHub](https://github.com/apache/maven-source-plugin/) | [JIRA MSOURCES](https://issues.apache.org/jira/projects/MSOURCES) | - [Apache Maven Stage Plugin](/plugins/maven-stage-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-stage-plugin.git`](https://gitbox.apache.org/repos/asf/maven-stage-plugin.git) | [GitHub](https://github.com/apache/maven-stage-plugin/) | [JIRA MSTAGE](https://issues.apache.org/jira/projects/MSTAGE) | - [Apache Maven Toolchains Plugin](/plugins/maven-toolchains-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-toolchains-plugin.git`](https://gitbox.apache.org/repos/asf/maven-toolchains-plugin.git) | [GitHub](https://github.com/apache/maven-toolchains-plugin/) | [JIRA MTOOLCHAINS](https://issues.apache.org/jira/projects/MTOOLCHAINS) | - [Apache Maven Verifier Plugin](/plugins/maven-verifier-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-verifier-plugin.git`](https://gitbox.apache.org/repos/asf/maven-verifier-plugin.git) | [GitHub](https://github.com/apache/maven-verifier-plugin/) | [JIRA MVERIFIER](https://issues.apache.org/jira/projects/MVERIFIER) | - [Apache Maven WAR Plugin](/plugins/maven-war-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-war-plugin.git`](https://gitbox.apache.org/repos/asf/maven-war-plugin.git) | [GitHub](https://github.com/apache/maven-war-plugin/) | [JIRA MWAR](https://issues.apache.org/jira/projects/MWAR) | +| [Apache Maven ACR Plugin](/plugins/maven-acr-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-acr-plugin.git`](https://gitbox.apache.org/repos/asf/maven-acr-plugin.git) | [GitHub](https://github.com/apache/maven-acr-plugin/) | [JIRA MACR](https://issues.apache.org/jira/projects/MACR) | +| [Apache Maven Ant Plugin](/plugins/maven-ant-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-ant-plugin.git`](https://gitbox.apache.org/repos/asf/maven-ant-plugin.git) | [GitHub](https://github.com/apache/maven-ant-plugin/) | [JIRA MANT](https://issues.apache.org/jira/projects/MANT) | +| [Apache Maven AntRun Plugin](/plugins/maven-antrun-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-antrun-plugin.git`](https://gitbox.apache.org/repos/asf/maven-antrun-plugin.git) | [GitHub](https://github.com/apache/maven-antrun-plugin/) | [JIRA MANTRUN](https://issues.apache.org/jira/projects/MANTRUN) | +| [Apache Maven Assembly Plugin](/plugins/maven-assembly-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git`](https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git) | [GitHub](https://github.com/apache/maven-assembly-plugin/) | [JIRA MASSEMBLY](https://issues.apache.org/jira/projects/MASSEMBLY) | +| [Apache Maven Changelog Plugin](/plugins/maven-changelog-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-changelog-plugin.git`](https://gitbox.apache.org/repos/asf/maven-changelog-plugin.git) | [GitHub](https://github.com/apache/maven-changelog-plugin/) | [JIRA MCHANGELOG](https://issues.apache.org/jira/projects/MCHANGELOG) | +| [Apache Maven Changes Plugin](/plugins/maven-changes-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-changes-plugin.git`](https://gitbox.apache.org/repos/asf/maven-changes-plugin.git) | [GitHub](https://github.com/apache/maven-changes-plugin/) | [JIRA MACHANGES](https://issues.apache.org/jira/projects/MACHANGES) | +| [Apache Maven Checkstyle Plugin](/plugins/maven-checkstyle-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-checkstyle-plugin.git`](https://gitbox.apache.org/repos/asf/maven-checkstyle-plugin.git) | [GitHub](https://github.com/apache/maven-checkstyle-plugin/) | [JIRA MCHECKSTYLE](https://issues.apache.org/jira/projects/MCHECKSTYLE) | +| [Apache Maven Clean Plugin](/plugins/maven-clean-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-clean-plugin.git`](https://gitbox.apache.org/repos/asf/maven-clean-plugin.git) | [GitHub](https://github.com/apache/maven-clean-plugin/) | [JIRA MCLEAN](https://issues.apache.org/jira/projects/MCLEAN) | +| [Apache Maven Compiler Plugin](/plugins/maven-compiler-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-compiler-plugin.git`](https://gitbox.apache.org/repos/asf/maven-compiler-plugin.git) | [GitHub](https://github.com/apache/maven-compiler-plugin/) | [JIRA MCOMPILER](https://issues.apache.org/jira/projects/MCOMPILER) | +| [Apache Maven Dependency Plugin](/plugins/maven-dependency-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git`](https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git) | [GitHub](https://github.com/apache/maven-dependency-plugin/) | [JIRA MDEP](https://issues.apache.org/jira/projects/MDEP) | +| [Apache Maven Deploy Plugin](/plugins/maven-deploy-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-deploy-plugin.git`](https://gitbox.apache.org/repos/asf/maven-deploy-plugin.git) | [GitHub](https://github.com/apache/maven-deploy-plugin/) | [JIRA MDEPLOY](https://issues.apache.org/jira/projects/MDEPLOY) | +| [Apache Maven DOAP Plugin](/plugins/maven-doap-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-doap-plugin.git`](https://gitbox.apache.org/repos/asf/maven-doap-plugin.git) | [GitHub](https://github.com/apache/maven-doap-plugin/) | [JIRA MDOAP](https://issues.apache.org/jira/projects/MDOAP) | +| [Apache Maven EAR Plugin](/plugins/maven-ear-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-ear-plugin.git`](https://gitbox.apache.org/repos/asf/maven-ear-plugin.git) | [GitHub](https://github.com/apache/maven-ear-plugin/) | [JIRA MEAR](https://issues.apache.org/jira/projects/MEAR) | +| [Apache Maven EJB Plugin](/plugins/maven-ejb-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-ejb-plugin.git`](https://gitbox.apache.org/repos/asf/maven-ejb-plugin.git) | [GitHub](https://github.com/apache/maven-ejb-plugin/) | [JIRA MEJB](https://issues.apache.org/jira/projects/MEJB) | +| [Apache Maven GPG Plugin](/plugins/maven-gpg-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-gpg-plugin.git`](https://gitbox.apache.org/repos/asf/maven-gpg-plugin.git) | [GitHub](https://github.com/apache/maven-gpg-plugin/) | [JIRA MGPG](https://issues.apache.org/jira/projects/MGPG) | +| [Apache Maven Help Plugin](/plugins/maven-help-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-help-plugin.git`](https://gitbox.apache.org/repos/asf/maven-help-plugin.git) | [GitHub](https://github.com/apache/maven-help-plugin/) | [JIRA MPH](https://issues.apache.org/jira/projects/MPH) | +| [Apache Maven Install Plugin](/plugins/maven-install-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-install-plugin.git`](https://gitbox.apache.org/repos/asf/maven-install-plugin.git) | [GitHub](https://github.com/apache/maven-install-plugin/) | [JIRA MINSTALL](https://issues.apache.org/jira/projects/MINSTALL) | +| [Apache Maven Invoker Plugin](/plugins/maven-invoker-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-invoker-plugin.git`](https://gitbox.apache.org/repos/asf/maven-invoker-plugin.git) | [GitHub](https://github.com/apache/maven-invoker-plugin/) | [JIRA MINVOKER](https://issues.apache.org/jira/projects/MINVOKER) | +| [Apache Maven JAR Plugin](/plugins/maven-jar-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jar-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jar-plugin.git) | [GitHub](https://github.com/apache/maven-jar-plugin/) | [JIRA MJAR](https://issues.apache.org/jira/projects/MJAR) | +| [Apache Maven Jarsigner Plugin](/plugins/maven-jarsigner-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jarsigner-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jarsigner-plugin.git) | [GitHub](https://github.com/apache/maven-jarsigner-plugin/) | [JIRA MJARSIGNER](https://issues.apache.org/jira/projects/MJARSIGNER) | +| [Apache Maven Javadoc Plugin](/plugins/maven-javadoc-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git`](https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git) | [GitHub](https://github.com/apache/maven-javadoc-plugin/) | [JIRA MJAVADOC](https://issues.apache.org/jira/projects/MJAVADOC) | +| [Apache Maven JDepRScan Plugin](/plugins/maven-jdeprscan-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git) | [GitHub](https://github.com/apache/maven-jdeprscan-plugin/) | [JIRA MJDEPRSCAN](https://issues.apache.org/jira/projects/MJDEPRSCAN) | +| [Apache Maven JDeps Plugin](/plugins/maven-jdeps-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jdeps-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jdeps-plugin.git) | [GitHub](https://github.com/apache/maven-jdeps-plugin/) | [JIRA MJDEPS](https://issues.apache.org/jira/projects/MJDEPS) | +| [Apache Maven JLink Plugin](/plugins/maven-jlink-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jlink-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jlink-plugin.git) | [GitHub](https://github.com/apache/maven-jlink-plugin/) | [JIRA MJLINK](https://issues.apache.org/jira/projects/MJLINK) | +| [Apache Maven JMod Plugin](/plugins/maven-jmod-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-jmod-plugin.git`](https://gitbox.apache.org/repos/asf/maven-jmod-plugin.git) | [GitHub](https://github.com/apache/maven-jmod-plugin/) | [JIRA MJMOD](https://issues.apache.org/jira/projects/MJMOD) | +| [Apache Maven Linkcheck Plugin](/plugins/maven-linkcheck-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-linkcheck-plugin.git`](https://gitbox.apache.org/repos/asf/maven-linkcheck-plugin.git) | [GitHub](https://github.com/apache/maven-linkcheck-plugin/) | [JIRA MLINKCHECK](https://issues.apache.org/jira/projects/MLINKCHECK) | +| [Apache Maven PDF Plugin](/plugins/maven-pdf-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-pdf-plugin.git`](https://gitbox.apache.org/repos/asf/maven-pdf-plugin.git) | [GitHub](https://github.com/apache/maven-pdf-plugin/) | [JIRA MPDF](https://issues.apache.org/jira/projects/MPDF) | +| [Apache Maven PMD Plugin](/plugins/maven-pmd-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git`](https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git) | [GitHub](https://github.com/apache/maven-pmd-plugin/) | [JIRA MPMD](https://issues.apache.org/jira/projects/MPMD) | +| [Apache Maven Project Info Reports Plugin](/plugins/maven-project-info-reports-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-project-info-reports-plugin.git`](https://gitbox.apache.org/repos/asf/maven-project-info-reports-plugin.git) | [GitHub](https://github.com/apache/maven-project-info-reports-plugin/) | [JIRA MPIR](https://issues.apache.org/jira/projects/MPIR) | +| [Apache Maven RAR Plugin](/plugins/maven-rar-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-rar-plugin.git`](https://gitbox.apache.org/repos/asf/maven-rar-plugin.git) | [GitHub](https://github.com/apache/maven-rar-plugin/) | [JIRA MRAR](https://issues.apache.org/jira/projects/MRAR) | +| [Apache Maven Remote Resources Plugin](/plugins/maven-remote-resources-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-remote-resources-plugin.git`](https://gitbox.apache.org/repos/asf/maven-remote-resources-plugin.git) | [GitHub](https://github.com/apache/maven-remote-resources-plugin/) | [JIRA MRRESOURCES](https://issues.apache.org/jira/projects/MRRESOURCES) | +| [Apache Maven Repository Plugin](/plugins/maven-repository-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-repository-plugin.git`](https://gitbox.apache.org/repos/asf/maven-repository-plugin.git) | [GitHub](https://github.com/apache/maven-repository-plugin/) | [JIRA MREPOSITORY](https://issues.apache.org/jira/projects/MREPOSITORY) | +| [Apache Maven Resources Plugin](/plugins/maven-resources-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-resources-plugin.git`](https://gitbox.apache.org/repos/asf/maven-resources-plugin.git) | [GitHub](https://github.com/apache/maven-resources-plugin/) | [JIRA MRESOURCES](https://issues.apache.org/jira/projects/MRESOURCES) | +| [Apache Maven SCM Publish Plugin](/plugins/maven-scm-publish-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-scm-publish-plugin.git`](https://gitbox.apache.org/repos/asf/maven-scm-publish-plugin.git) | [GitHub](https://github.com/apache/maven-scm-publish-plugin/) | [JIRA SCM](https://issues.apache.org/jira/projects/SCM) | +| [Apache Maven Scripting Plugin](/plugins/maven-scripting-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-scripting-plugin.git`](https://gitbox.apache.org/repos/asf/maven-scripting-plugin.git) | [GitHub](https://github.com/apache/maven-scripting-plugin/) | [JIRA MSCRIPTING](https://issues.apache.org/jira/projects/MSCRIPTING) | +| [Apache Maven Shade Plugin](/plugins/maven-shade-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-shade-plugin.git`](https://gitbox.apache.org/repos/asf/maven-shade-plugin.git) | [GitHub](https://github.com/apache/maven-shade-plugin/) | [JIRA MSHADE](https://issues.apache.org/jira/projects/MSHADE) | +| [Apache Maven Site Plugin](/plugins/maven-site-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-site-plugin.git`](https://gitbox.apache.org/repos/asf/maven-site-plugin.git) | [GitHub](https://github.com/apache/maven-site-plugin/) | [JIRA MSITE](https://issues.apache.org/jira/projects/MSITE) | +| [Apache Maven Source Plugin](/plugins/maven-source-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-source-plugin.git`](https://gitbox.apache.org/repos/asf/maven-source-plugin.git) | [GitHub](https://github.com/apache/maven-source-plugin/) | [JIRA MSOURCES](https://issues.apache.org/jira/projects/MSOURCES) | +| [Apache Maven Stage Plugin](/plugins/maven-stage-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-stage-plugin.git`](https://gitbox.apache.org/repos/asf/maven-stage-plugin.git) | [GitHub](https://github.com/apache/maven-stage-plugin/) | [JIRA MSTAGE](https://issues.apache.org/jira/projects/MSTAGE) | +| [Apache Maven Toolchains Plugin](/plugins/maven-toolchains-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-toolchains-plugin.git`](https://gitbox.apache.org/repos/asf/maven-toolchains-plugin.git) | [GitHub](https://github.com/apache/maven-toolchains-plugin/) | [JIRA MTOOLCHAINS](https://issues.apache.org/jira/projects/MTOOLCHAINS) | +| [Apache Maven Verifier Plugin](/plugins/maven-verifier-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-verifier-plugin.git`](https://gitbox.apache.org/repos/asf/maven-verifier-plugin.git) | [GitHub](https://github.com/apache/maven-verifier-plugin/) | [JIRA MVERIFIER](https://issues.apache.org/jira/projects/MVERIFIER) | +| [Apache Maven WAR Plugin](/plugins/maven-war-plugin/) | [`https://gitbox.apache.org/repos/asf/maven-war-plugin.git`](https://gitbox.apache.org/repos/asf/maven-war-plugin.git) | [GitHub](https://github.com/apache/maven-war-plugin/) | [JIRA MWAR](https://issues.apache.org/jira/projects/MWAR) | #### Parent POMs | Content | Repository | Mirror | Issues | |:-----------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------:|:---------------------------------------------------------------------:| - [Apache Parent POM](/pom/asf/) | [`https://gitbox.apache.org/repos/asf/maven-apache-parent.git`](https://gitbox.apache.org/repos/asf/maven-apache-parent.git) | [GitHub](https://github.com/apache/maven-apache-parent/) | [GitHub Issues](https://github.com/apache/maven-apache-parent/issues) | - [Apache Maven Parent POMs](/pom/maven/) | [`https://gitbox.apache.org/repos/asf/maven-parent.git`](https://gitbox.apache.org/repos/asf/maven-parent.git) | [GitHub](https://github.com/apache/maven-parent/) | [GitHub Issues](https://github.com/apache/maven-parent/issues) | - [Apache Resource Bundles](/apache-resource-bundles/) | [`https://gitbox.apache.org/repos/asf/maven-apache-resources.git`](https://gitbox.apache.org/repos/asf/maven-apache-resources.git) | [GitHub](https://github.com/apache/maven-apache-resources/) | [JIRA MASFRES](https://issues.apache.org/jira/projects/MASFRES) | +| [Apache Parent POM](/pom/asf/) | [`https://gitbox.apache.org/repos/asf/maven-apache-parent.git`](https://gitbox.apache.org/repos/asf/maven-apache-parent.git) | [GitHub](https://github.com/apache/maven-apache-parent/) | [GitHub Issues](https://github.com/apache/maven-apache-parent/issues) | +| [Apache Maven Parent POMs](/pom/maven/) | [`https://gitbox.apache.org/repos/asf/maven-parent.git`](https://gitbox.apache.org/repos/asf/maven-parent.git) | [GitHub](https://github.com/apache/maven-parent/) | [GitHub Issues](https://github.com/apache/maven-parent/issues) | +| [Apache Resource Bundles](/apache-resource-bundles/) | [`https://gitbox.apache.org/repos/asf/maven-apache-resources.git`](https://gitbox.apache.org/repos/asf/maven-apache-resources.git) | [GitHub](https://github.com/apache/maven-apache-resources/) | [JIRA MASFRES](https://issues.apache.org/jira/projects/MASFRES) | #### Shared Components | Content | Repository | Mirror | Issues | |:------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------:|:-------------------------------------------------------------------:| - [Apache Maven Archiver](/shared/maven-archiver/) | [`https://gitbox.apache.org/repos/asf/maven-archiver.git`](https://gitbox.apache.org/repos/asf/maven-archiver.git) | [GitHub](https://github.com/apache/maven-archiver/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Artifact Resolver](/shared/maven-artifact-resolver/) | [`https://gitbox.apache.org/repos/asf/maven-artifact-resolver.git`](https://gitbox.apache.org/repos/asf/maven-artifact-resolver.git) | [GitHub](https://github.com/apache/maven-artifact-resolver/) | [JIRA MRESOLVER](https://issues.apache.org/jira/projects/MRESOLVER) | - [Apache Maven Artifact Transfer](/shared/maven-artifact-transfer/) | [`https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git`](https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git) | [GitHub](https://github.com/apache/maven-artifact-transfer/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache MavenCommon Artifact Filters](/shared/maven-common-artifact-filters/) | [`https://gitbox.apache.org/repos/asf/maven-common-artifact-filters.git`](https://gitbox.apache.org/repos/asf/maven-common-artifact-filters.git) | [GitHub](https://github.com/apache/maven-common-artifact-filters/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Dependency Analyzer](/shared/maven-dependency-analyzer/) | [`https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git`](https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git) | [GitHub](https://github.com/apache/maven-dependency-analyzer/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Dependency Tree](/shared/maven-dependency-tree/) | [`https://gitbox.apache.org/repos/asf/maven-dependency-tree.git`](https://gitbox.apache.org/repos/asf/maven-dependency-tree.git) | [GitHub](https://github.com/apache/maven-dependency-tree/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Downloader](/shared/maven-downloader/) | [`https://gitbox.apache.org/repos/asf/maven-downloader.git`](https://gitbox.apache.org/repos/asf/maven-downloader.git) | [GitHub](https://github.com/apache/maven-downloader/) | N/A | - [Apache Maven Filtering](/shared/maven-filtering/) | [`https://gitbox.apache.org/repos/asf/maven-filtering.git`](https://gitbox.apache.org/repos/asf/maven-filtering.git) | [GitHub](https://github.com/apache/maven-filtering/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Invoker](/shared/maven-invoker/) | [`https://gitbox.apache.org/repos/asf/maven-invoker.git`](https://gitbox.apache.org/repos/asf/maven-invoker.git) | [GitHub](https://github.com/apache/maven-invoker/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Jarsigner](/shared/maven-jarsigner/) | [`https://gitbox.apache.org/repos/asf/maven-jarsigner.git`](https://gitbox.apache.org/repos/asf/maven-jarsigner.git) | [GitHub](https://github.com/apache/maven-jarsigner/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Mapping](/shared/maven-mapping/) | [`https://gitbox.apache.org/repos/asf/maven-mapping.git`](https://gitbox.apache.org/repos/asf/maven-mapping.git) | [GitHub](https://github.com/apache/maven-mapping/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven OSGi](/shared/maven-osgi/) | [`https://gitbox.apache.org/repos/asf/maven-osgi.git`](https://gitbox.apache.org/repos/asf/maven-osgi.git) | [GitHub](https://github.com/apache/maven-osgi/) | N/A | - [Apache Maven Project Utils](/shared/maven-project-utils/) | [`https://gitbox.apache.org/repos/asf/maven-project-utils.git`](https://gitbox.apache.org/repos/asf/maven-project-utils.git) | [GitHub](https://github.com/apache/maven-project-utils/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Reporting API](/shared/maven-reporting-api/) | [`https://gitbox.apache.org/repos/asf/maven-reporting-api.git`](https://gitbox.apache.org/repos/asf/maven-reporting-api.git) | [GitHub](https://github.com/apache/maven-reporting-api/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Reporting Executor](/shared/maven-reporting-exec/) | [`https://gitbox.apache.org/repos/asf/maven-reporting-exec.git`](https://gitbox.apache.org/repos/asf/maven-reporting-exec.git) | [GitHub](https://github.com/apache/maven-reporting-exec/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Reporting Implementation](/shared/maven-reporting-impl/) | [`https://gitbox.apache.org/repos/asf/maven-reporting-impl.git`](https://gitbox.apache.org/repos/asf/maven-reporting-impl.git) | [GitHub](https://github.com/apache/maven-reporting-impl/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Respository Builder](/shared/maven-repository-builder/) | [`https://gitbox.apache.org/repos/asf/maven-repository-builder.git`](https://gitbox.apache.org/repos/asf/maven-repository-builder.git) | [GitHub](https://github.com/apache/maven-repository-builder/) | N/A | - [Apache Maven Runtime](/shared/maven-runtime/) | [`https://gitbox.apache.org/repos/asf/maven-runtime.git`](https://gitbox.apache.org/repos/asf/maven-runtime.git) | [GitHub](https://github.com/apache/maven-runtime/) | N/A | - [Apache Maven Script Interpreter](/shared/maven-script-interpreter/) | [`https://gitbox.apache.org/repos/asf/maven-script-interpreter.git`](https://gitbox.apache.org/repos/asf/maven-script-interpreter.git) | [GitHub](https://github.com/apache/maven-script-interpreter/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Shared Incremental](/shared/maven-shared-incremental/) | [`https://gitbox.apache.org/repos/asf/maven-shared-incremental.git`](https://gitbox.apache.org/repos/asf/maven-shared-incremental.git) | [GitHub](https://github.com/apache/maven-shared-incremental/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Shared IO](/shared/maven-shared-io/) | [`https://gitbox.apache.org/repos/asf/maven-shared-io.git`](https://gitbox.apache.org/repos/asf/maven-shared-io.git) | [GitHub](https://github.com/apache/maven-shared-io/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Shared Jar](/shared/maven-shared-jar/) | [`https://gitbox.apache.org/repos/asf/maven-shared-jar.git`](https://gitbox.apache.org/repos/asf/maven-shared-jar.git) | [GitHub](https://github.com/apache/maven-shared-jar/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Shared Resources](/shared/maven-shared-resources/) | [`https://gitbox.apache.org/repos/asf/maven-shared-resources.git`](https://gitbox.apache.org/repos/asf/maven-shared-resources.git) | [GitHub](https://github.com/apache/maven-shared-resources/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Shared Utils](/shared/maven-shared-utils/) | [`https://gitbox.apache.org/repos/asf/maven-shared-utils.git`](https://gitbox.apache.org/repos/asf/maven-shared-utils.git) | [GitHub](https://github.com/apache/maven-shared-utils/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | - [Apache Maven Verifier](/shared/maven-verifier/) | [`https://gitbox.apache.org/repos/asf/maven-verifier.git`](https://gitbox.apache.org/repos/asf/maven-verifier.git) | [GitHub](https://github.com/apache/maven-verifier/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Archiver](/shared/maven-archiver/) | [`https://gitbox.apache.org/repos/asf/maven-archiver.git`](https://gitbox.apache.org/repos/asf/maven-archiver.git) | [GitHub](https://github.com/apache/maven-archiver/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Artifact Resolver](/shared/maven-artifact-resolver/) | [`https://gitbox.apache.org/repos/asf/maven-artifact-resolver.git`](https://gitbox.apache.org/repos/asf/maven-artifact-resolver.git) | [GitHub](https://github.com/apache/maven-artifact-resolver/) | [JIRA MRESOLVER](https://issues.apache.org/jira/projects/MRESOLVER) | +| [Apache Maven Artifact Transfer](/shared/maven-artifact-transfer/) | [`https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git`](https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git) | [GitHub](https://github.com/apache/maven-artifact-transfer/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache MavenCommon Artifact Filters](/shared/maven-common-artifact-filters/) | [`https://gitbox.apache.org/repos/asf/maven-common-artifact-filters.git`](https://gitbox.apache.org/repos/asf/maven-common-artifact-filters.git) | [GitHub](https://github.com/apache/maven-common-artifact-filters/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Dependency Analyzer](/shared/maven-dependency-analyzer/) | [`https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git`](https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git) | [GitHub](https://github.com/apache/maven-dependency-analyzer/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Dependency Tree](/shared/maven-dependency-tree/) | [`https://gitbox.apache.org/repos/asf/maven-dependency-tree.git`](https://gitbox.apache.org/repos/asf/maven-dependency-tree.git) | [GitHub](https://github.com/apache/maven-dependency-tree/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Downloader](/shared/maven-downloader/) | [`https://gitbox.apache.org/repos/asf/maven-downloader.git`](https://gitbox.apache.org/repos/asf/maven-downloader.git) | [GitHub](https://github.com/apache/maven-downloader/) | N/A | +| [Apache Maven Filtering](/shared/maven-filtering/) | [`https://gitbox.apache.org/repos/asf/maven-filtering.git`](https://gitbox.apache.org/repos/asf/maven-filtering.git) | [GitHub](https://github.com/apache/maven-filtering/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Invoker](/shared/maven-invoker/) | [`https://gitbox.apache.org/repos/asf/maven-invoker.git`](https://gitbox.apache.org/repos/asf/maven-invoker.git) | [GitHub](https://github.com/apache/maven-invoker/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Jarsigner](/shared/maven-jarsigner/) | [`https://gitbox.apache.org/repos/asf/maven-jarsigner.git`](https://gitbox.apache.org/repos/asf/maven-jarsigner.git) | [GitHub](https://github.com/apache/maven-jarsigner/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Mapping](/shared/maven-mapping/) | [`https://gitbox.apache.org/repos/asf/maven-mapping.git`](https://gitbox.apache.org/repos/asf/maven-mapping.git) | [GitHub](https://github.com/apache/maven-mapping/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven OSGi](/shared/maven-osgi/) | [`https://gitbox.apache.org/repos/asf/maven-osgi.git`](https://gitbox.apache.org/repos/asf/maven-osgi.git) | [GitHub](https://github.com/apache/maven-osgi/) | N/A | +| [Apache Maven Project Utils](/shared/maven-project-utils/) | [`https://gitbox.apache.org/repos/asf/maven-project-utils.git`](https://gitbox.apache.org/repos/asf/maven-project-utils.git) | [GitHub](https://github.com/apache/maven-project-utils/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Reporting API](/shared/maven-reporting-api/) | [`https://gitbox.apache.org/repos/asf/maven-reporting-api.git`](https://gitbox.apache.org/repos/asf/maven-reporting-api.git) | [GitHub](https://github.com/apache/maven-reporting-api/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Reporting Executor](/shared/maven-reporting-exec/) | [`https://gitbox.apache.org/repos/asf/maven-reporting-exec.git`](https://gitbox.apache.org/repos/asf/maven-reporting-exec.git) | [GitHub](https://github.com/apache/maven-reporting-exec/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Reporting Implementation](/shared/maven-reporting-impl/) | [`https://gitbox.apache.org/repos/asf/maven-reporting-impl.git`](https://gitbox.apache.org/repos/asf/maven-reporting-impl.git) | [GitHub](https://github.com/apache/maven-reporting-impl/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Respository Builder](/shared/maven-repository-builder/) | [`https://gitbox.apache.org/repos/asf/maven-repository-builder.git`](https://gitbox.apache.org/repos/asf/maven-repository-builder.git) | [GitHub](https://github.com/apache/maven-repository-builder/) | N/A | +| [Apache Maven Runtime](/shared/maven-runtime/) | [`https://gitbox.apache.org/repos/asf/maven-runtime.git`](https://gitbox.apache.org/repos/asf/maven-runtime.git) | [GitHub](https://github.com/apache/maven-runtime/) | N/A | +| [Apache Maven Script Interpreter](/shared/maven-script-interpreter/) | [`https://gitbox.apache.org/repos/asf/maven-script-interpreter.git`](https://gitbox.apache.org/repos/asf/maven-script-interpreter.git) | [GitHub](https://github.com/apache/maven-script-interpreter/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Shared Incremental](/shared/maven-shared-incremental/) | [`https://gitbox.apache.org/repos/asf/maven-shared-incremental.git`](https://gitbox.apache.org/repos/asf/maven-shared-incremental.git) | [GitHub](https://github.com/apache/maven-shared-incremental/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Shared IO](/shared/maven-shared-io/) | [`https://gitbox.apache.org/repos/asf/maven-shared-io.git`](https://gitbox.apache.org/repos/asf/maven-shared-io.git) | [GitHub](https://github.com/apache/maven-shared-io/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Shared Jar](/shared/maven-shared-jar/) | [`https://gitbox.apache.org/repos/asf/maven-shared-jar.git`](https://gitbox.apache.org/repos/asf/maven-shared-jar.git) | [GitHub](https://github.com/apache/maven-shared-jar/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Shared Resources](/shared/maven-shared-resources/) | [`https://gitbox.apache.org/repos/asf/maven-shared-resources.git`](https://gitbox.apache.org/repos/asf/maven-shared-resources.git) | [GitHub](https://github.com/apache/maven-shared-resources/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Shared Utils](/shared/maven-shared-utils/) | [`https://gitbox.apache.org/repos/asf/maven-shared-utils.git`](https://gitbox.apache.org/repos/asf/maven-shared-utils.git) | [GitHub](https://github.com/apache/maven-shared-utils/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | +| [Apache Maven Verifier](/shared/maven-verifier/) | [`https://gitbox.apache.org/repos/asf/maven-verifier.git`](https://gitbox.apache.org/repos/asf/maven-verifier.git) | [GitHub](https://github.com/apache/maven-verifier/) | [JIRA MSHARED](https://issues.apache.org/jira/projects/MSHARED) | #### Shared Components | Content | Repository | Mirror | Issues | |:--------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------:|:-------------------------------------------------------------:| - [Apache Maven Default Skin](/skins/maven-default-skin/) | [`https://gitbox.apache.org/repos/asf/maven-default-skin.git`](https://gitbox.apache.org/repos/asf/maven-default-skin.git) | [GitHub](https://github.com/apache/maven-default-skin/) | [JIRA MSKINS](https://issues.apache.org/jira/projects/MSKINS) | - [Apache Maven Fluido Skin](/skins/maven-fluido-skin/) | [`https://gitbox.apache.org/repos/asf/maven-fluido-skin.git`](https://gitbox.apache.org/repos/asf/maven-fluido-skin.git) | [GitHub](https://github.com/apache/maven-fluido-skin/) | [JIRA MSKINS](https://issues.apache.org/jira/projects/MSKINS) | +| [Apache Maven Default Skin](/skins/maven-default-skin/) | [`https://gitbox.apache.org/repos/asf/maven-default-skin.git`](https://gitbox.apache.org/repos/asf/maven-default-skin.git) | [GitHub](https://github.com/apache/maven-default-skin/) | [JIRA MSKINS](https://issues.apache.org/jira/projects/MSKINS) | +| [Apache Maven Fluido Skin](/skins/maven-fluido-skin/) | [`https://gitbox.apache.org/repos/asf/maven-fluido-skin.git`](https://gitbox.apache.org/repos/asf/maven-fluido-skin.git) | [GitHub](https://github.com/apache/maven-fluido-skin/) | [JIRA MSKINS](https://issues.apache.org/jira/projects/MSKINS) | #### Components in Subversion diff --git a/content/markdown/security-plexus-archiver.md b/content/markdown/security-plexus-archiver.md index 49decd7160..d877baa23b 100644 --- a/content/markdown/security-plexus-archiver.md +++ b/content/markdown/security-plexus-archiver.md @@ -1,4 +1,5 @@ # Zip Slip Vulnerability + + As part of [a broader research](https://snyk.io/research/zip-slip-vulnerability), the Snyk Security Research Team discovered -an arbitrary file write generic vulnerability, that can be achieved using a -specially crafted zip (or bzip2, gzip, tar, xz, war) archive, that holds -path traversal filenames. So when the filename gets concatenated to the -target extraction directory, if the extraction tool used does not make +an arbitrary file write generic vulnerability, that can be achieved using a +specially crafted zip (or bzip2, gzip, tar, xz, war) archive, that holds +path traversal filenames. So when the filename gets concatenated to the +target extraction directory, if the extraction tool used does not make sufficient checks, the final path ends up outside of the target directory. -The Apache Maven team has been informed because the plexus-archiver library -did not make sufficient checks and it is a library used by most of the +The Apache Maven team has been informed because the plexus-archiver library +did not make sufficient checks and it is a library used by most of the packaging plugins. Affected versions of plexus-archiver are [,3.4]+[3.5], fixed versions are 3.4.1 & 3.6.0, with issue management [plexus-archiver #87](https://github.com/codehaus-plexus/plexus-archiver/pull/87) and Snyk vulnerability report [SNYK-JAVA-ORGCODEHAUSPLEXUS-31680](https://snyk.io/vuln/SNYK-JAVA-ORGCODEHAUSPLEXUS-31680) - ## What parts of Maven are vulnerable? Apache Maven itself is not vulnerable, since Maven doesn't unpack by itself: unpacking actions are done by plugins. -Reading malicious archives in memory is also not an issue, only when -unpacking such archives to disk may cause issues, however in general +Reading malicious archives in memory is also not an issue, only when +unpacking such archives to disk may cause issues, however in general Maven plugins don't unpack archives. The issue is regarding malicious artifacts and we haven't been able to create -such artifacts with our Maven plugins, hence there's no additional action +such artifacts with our Maven plugins, hence there's no additional action required to prevent the creation of malicious archives at this level. The following plugins use plexus-archiver to unpack dependencies to disk @@ -96,7 +97,6 @@ which versions contain the fixed and the link to the corresponding issue.
    - Apache Ant up to 1.9.11 has the same issue with its unzip task: it will be fixed in 1.9.12 857095da5153fd18504b46f276d84f1e76a66970. Then following Maven plugins using Ant are affected: @@ -124,7 +124,7 @@ Then following Maven plugins using Ant are affected: Ant Mojo Wrapper - + Following plugins use plexus-archiver but are not affected since they only _create_ archives: - maven-acr-plugin @@ -140,7 +140,7 @@ Following plugins use plexus-archiver but are not affected since they only _crea ## When are you affected by this vulnerability? The vulnerability is like a Trojan Horse, the malicious archive must first enter the system, normally achieved -with a downloaded of a dependency. Once downloaded there's no direct danger, the user must take some specific +with a downloaded of a dependency. Once downloaded there's no direct danger, the user must take some specific actions before becoming a victim. This only happens when all of the following criteria are met: - There's an archive available in a repository that is malicious. diff --git a/content/markdown/security.md b/content/markdown/security.md index 4a4f794bb0..1a375a242b 100644 --- a/content/markdown/security.md +++ b/content/markdown/security.md @@ -1,4 +1,5 @@ # Maven Security + + ## Security Model The purpose of Maven is to perform the actions defined in the supplied @@ -50,8 +52,8 @@ Versions Affected: - Apache Maven 3.6.3 and earlier Description: More and more repositories use HTTPS nowadays, but this hasn't always been the case. This means that Maven Central contains POMs with custom repositories that refer to a URL over HTTP. -This makes downloads via such repository a target for a MITM attack. -At the same time, developers are probably not aware that for some downloads an insecure URL is being used. +This makes downloads via such repository a target for a MITM attack. +At the same time, developers are probably not aware that for some downloads an insecure URL is being used. Because uploaded POMs to Maven Central are immutable, a change for Maven was required. To solve this, we extended the mirror configuration with `` parameter, and we added a new `external:http:*` mirror selector (like existing `external:*`), meaning "any external URL using HTTP".\ @@ -73,10 +75,10 @@ Versions Affected: - Maven Plugin Plugin 3.0 to 3.5.1 Description: As part of a broader research, the Snyk Security Research Team discovered -an arbitrary file write generic vulnerability, that can be achieved using a -specially crafted zip (or bzip2, gzip, tar, xz, war) archive, that holds -path traversal filenames. So when the filename gets concatenated to the -target extraction directory, if the extraction tool used does not make +an arbitrary file write generic vulnerability, that can be achieved using a +specially crafted zip (or bzip2, gzip, tar, xz, war) archive, that holds +path traversal filenames. So when the filename gets concatenated to the +target extraction directory, if the extraction tool used does not make sufficient checks, the final path ends up outside of the target directory. The affected plugins use plexus-archiver to unpack dependencies to disk and have been identified as potential triggers for exposing the vulnerability @@ -94,8 +96,8 @@ Vendor: The Apache Software Foundation Versions Affected: -- Apache Maven 3.0.4 -- Apache Maven Wagon 2.1, 2.2, 2.3 +- Apache Maven 3.0.4 +- Apache Maven Wagon 2.1, 2.2, 2.3 Description: Apache Maven 3.0.4 (with Apache Maven Wagon 2.1) has introduced a non-secure SSL mode by default. This mode disables all SSL @@ -118,16 +120,16 @@ Vendor: The Apache Software Foundation Versions Affected: -- Apache Maven Wagon WebDAV Provider 2.12 and earlier +- Apache Maven Wagon WebDAV Provider 2.12 and earlier -Description: http/conn/ssl/AbstractVerifier.java in Apache Commons HttpClient -before 4.2.3 does not properly verify that the server hostname matches a -domain name in the subject's Common Name (CN) or subjectAltName field of the -X.509 certificate, which allows man-in-the-middle attackers to spoof SSL -servers via a certificate with a subject that specifies a common name in a +Description: http/conn/ssl/AbstractVerifier.java in Apache Commons HttpClient +before 4.2.3 does not properly verify that the server hostname matches a +domain name in the subject's Common Name (CN) or subjectAltName field of the +X.509 certificate, which allows man-in-the-middle attackers to spoof SSL +servers via a certificate with a subject that specifies a common name in a field that is not the CN field. [CVE-2012-6153](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6153) -Users of this provider are recommended to upgrade to [Apache Maven Wagon :: +Users of this provider are recommended to upgrade to [Apache Maven Wagon :: WebDAV Provider 3.0.0](./download.cgi) diff --git a/content/markdown/settings.md b/content/markdown/settings.md index 26935fddb4..0f6ab7b317 100644 --- a/content/markdown/settings.md +++ b/content/markdown/settings.md @@ -1,4 +1,5 @@ # Settings Reference + - ## Introduction @@ -33,8 +33,8 @@ authentication information. There are two locations where a `settings.xml` file may live: -- The Maven install: `${maven.home}/conf/settings.xml` -- A user's install: `${user.home}/.m2/settings.xml` +- The Maven install: `${maven.home}/conf/settings.xml` +- A user's install: `${user.home}/.m2/settings.xml` The former `settings.xml` is also called global settings, the latter `settings.xml` is referred to as user settings. If both files exist, @@ -67,8 +67,8 @@ Here is an overview of the top elements under `settings`: The contents of `settings.xml` can be interpolated using the following expressions: -1. `${user.home}` and all other system properties -2. `${env.HOME}` etc. for environment variables +1. `${user.home}` and all other system properties +2. `${env.HOME}` etc. for environment variables Note that properties defined in profiles within `settings.xml` cannot be used for interpolation. @@ -81,25 +81,25 @@ Half of the top-level `settings` elements are simple values, representing a range of values which describe elements of the build system that are active full-time. - - ${user.home}/.m2/repository - true - false - ... - - -- **localRepository**: This value is the path of this build system's - local repository. The default value is - `${user.home}/.m2/repository`. This element is especially useful for - a main build server allowing all logged-in users to build from a - common local repository. -- **interactiveMode**: `true` if Maven should attempt to interact with - the user for input, `false` if not. Defaults to `true`. -- **offline**: `true` if this build system should operate in offline - mode, defaults to `false`. This element is useful for build servers - which cannot connect to a remote repository, either because of - network setup or security reasons. + + ${user.home}/.m2/repository + true + false + ... + + +- **localRepository**: This value is the path of this build system's + local repository. The default value is + `${user.home}/.m2/repository`. This element is especially useful for + a main build server allowing all logged-in users to build from a + common local repository. +- **interactiveMode**: `true` if Maven should attempt to interact with + the user for input, `false` if not. Defaults to `true`. +- **offline**: `true` if this build system should operate in offline + mode, defaults to `false`. This element is useful for build servers + which cannot connect to a remote repository, either because of + network setup or security reasons. ### Plugin Groups @@ -122,7 +122,7 @@ not provided in the command line. This list automatically contains For example, given the above settings the Maven command line may execute `org.eclipse.jetty:jetty-maven-plugin:run` with the truncated command: - mvn jetty:run + mvn jetty:run ### Servers @@ -153,21 +153,21 @@ information should exist on the build server in the `settings.xml`. ``` -- **id**: This is the ID of the server *(not of the user to login as)* - that matches the `id` element of the repository/mirror that Maven - tries to connect to. -- **username**, **password**: These elements appear as a pair denoting - the login and password required to authenticate to this server. -- **privateKey**, **passphrase**: Like the previous two elements, this - pair specifies a path to a private key (default is - `${user.home}/.ssh/id_dsa`) and a `passphrase`, if required. The - `passphrase` and `password` elements may be externalized in the - future, but for now they must be set plain-text in the - `settings.xml` file. -- **filePermissions**, **directoryPermissions**: When a repository - file or directory is created on deployment, these are the - permissions to use. The legal values of each is a three digit number - corresponding to \*nix file permissions, e.g. 664, or 775. +- **id**: This is the ID of the server *(not of the user to login as)* + that matches the `id` element of the repository/mirror that Maven + tries to connect to. +- **username**, **password**: These elements appear as a pair denoting + the login and password required to authenticate to this server. +- **privateKey**, **passphrase**: Like the previous two elements, this + pair specifies a path to a private key (default is + `${user.home}/.ssh/id_dsa`) and a `passphrase`, if required. The + `passphrase` and `password` elements may be externalized in the + future, but for now they must be set plain-text in the + `settings.xml` file. +- **filePermissions**, **directoryPermissions**: When a repository + file or directory is created on deployment, these are the + permissions to use. The legal values of each is a three digit number + corresponding to \*nix file permissions, e.g. 664, or 775. *Note:* If you use a private key to login to the server, make sure you omit the `` element. Otherwise, the key will be ignored. @@ -196,18 +196,18 @@ page](./guides/mini/guide-encryption.html) ``` -- **id**, **name**: The unique identifier and user-friendly name of - this mirror. The `id` is used to differentiate between `mirror` - elements and to pick the corresponding credentials from the - [``](#Servers) section when connecting to the mirror. -- **url**: The base URL of this mirror. The build system will use this - URL to connect to a repository rather than the original repository - URL. -- **mirrorOf**: The `id` of the repository that this is a mirror of. - For example, to point to a mirror of the Maven `central` repository - (`https://repo.maven.apache.org/maven2/`), set this element to - `central`. More advanced mappings like `repo1,repo2` or `*,!inhouse` - are also possible. This must not match the mirror `id`. +- **id**, **name**: The unique identifier and user-friendly name of + this mirror. The `id` is used to differentiate between `mirror` + elements and to pick the corresponding credentials from the + [``](#Servers) section when connecting to the mirror. +- **url**: The base URL of this mirror. The build system will use this + URL to connect to a repository rather than the original repository + URL. +- **mirrorOf**: The `id` of the repository that this is a mirror of. + For example, to point to a mirror of the Maven `central` repository + (`https://repo.maven.apache.org/maven2/`), set this element to + `central`. More advanced mappings like `repo1,repo2` or `*,!inhouse` + are also possible. This must not match the mirror `id`. For a more in-depth introduction of mirrors, please read the [Guide to Mirror Settings](./guides/mini/guide-mirror-settings.html). @@ -234,19 +234,19 @@ Mirror Settings](./guides/mini/guide-mirror-settings.html). ``` -- **id**: The unique identifier for this proxy. This is used to - differentiate between `proxy` elements. -- **active**: `true` if this proxy is active. This is useful for - declaring a set of proxies, but only one may be active at a time. -- **protocol**, **host**, **port**: The `protocol://host:port` of the - proxy, separated into discrete elements. -- **username**, **password**: These elements appear as a pair denoting - the login and password required to authenticate to this proxy - server. -- **nonProxyHosts**: This is a list of hosts which should not be - proxied. The delimiter of the list is the expected type of the proxy - server; the example above is pipe delimited - comma delimited is - also common. +- **id**: The unique identifier for this proxy. This is used to + differentiate between `proxy` elements. +- **active**: `true` if this proxy is active. This is useful for + declaring a set of proxies, but only one may be active at a time. +- **protocol**, **host**, **port**: The `protocol://host:port` of the + proxy, separated into discrete elements. +- **username**, **password**: These elements appear as a pair denoting + the login and password required to authenticate to this proxy + server. +- **nonProxyHosts**: This is a list of hosts which should not be + proxied. The delimiter of the list is the expected type of the proxy + server; the example above is pipe delimited - comma delimited is + also common. ### Profiles @@ -303,22 +303,22 @@ certain circumstances; those circumstances are specified via an Activation occurs when all specified criteria have been met, though not all are required at once. -- **jdk**: `activation` has a built in, Java-centric check in the - `jdk` element. This will activate if the test is run under a jdk - version number that matches the prefix given. In the above example, - `21.0.1` will match. Ranges are also supported. - See the - [maven-enforcer-plugin](https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html) - for more details about supported ranges. -- **os**: The `os` element can define some operating system specific - properties shown above. See the - [maven-enforcer-plugin](https://maven.apache.org/plugins/maven-enforcer-plugin/rules/requireOS.html) - for more details about OS values. -- **property**: The `profile` will activate if Maven detects a - property (a value which can be dereferenced within the POM by - `${name}`) of the corresponding `name=value` pair. -- **file**: Finally, a given filename may activate the `profile` by - the `existence` of a file, or if it is `missing`. +- **jdk**: `activation` has a built in, Java-centric check in the + `jdk` element. This will activate if the test is run under a jdk + version number that matches the prefix given. In the above example, + `21.0.1` will match. Ranges are also supported. + See the + [maven-enforcer-plugin](https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html) + for more details about supported ranges. +- **os**: The `os` element can define some operating system specific + properties shown above. See the + [maven-enforcer-plugin](https://maven.apache.org/plugins/maven-enforcer-plugin/rules/requireOS.html) + for more details about OS values. +- **property**: The `profile` will activate if Maven detects a + property (a value which can be dereferenced within the POM by + `${name}`) of the corresponding `name=value` pair. +- **file**: Finally, a given filename may activate the `profile` by + the `existence` of a file, or if it is `missing`. The `activation` element is not the only way that a `profile` may be activated. The `settings.xml` file's `activeProfile` element may contain @@ -329,7 +329,7 @@ command line via a comma separated list after the `-P` flag (e.g. *To see which profile will activate in a certain build, use the* `maven-help-plugin`. - mvn help:active-profiles + mvn help:active-profiles #### Properties @@ -338,22 +338,22 @@ values are accessible anywhere within a POM by using the notation `${X}`, where `X` is the property. They come in five different styles, all accessible from the `settings.xml` file: -1. `env.X`: Prefixing a variable with "env." will return the shell's - environment variable. For example, `${env.PATH}` contains the \$path - environment variable (`%PATH%` in Windows). -2. `project.x`: A dot (.) notated path in the POM will contain the - corresponding element's value. For example: - `1.0` is accessible via - `${project.version}`. -3. `settings.x`: A dot (.) notated path in the `settings.xml` will - contain the corresponding element's value. For example: - `false` is accessible via - `${settings.offline}`. -4. Java System Properties: All properties accessible via - `java.lang.System.getProperties()` are available as POM properties, - such as `${java.home}`. -5. `x`: Set within a \ element or an external files, the - value may be used as `${someVar}`. +1. `env.X`: Prefixing a variable with "env." will return the shell's + environment variable. For example, `${env.PATH}` contains the \$path + environment variable (`%PATH%` in Windows). +2. `project.x`: A dot (.) notated path in the POM will contain the + corresponding element's value. For example: + `1.0` is accessible via + `${project.version}`. +3. `settings.x`: A dot (.) notated path in the `settings.xml` will + contain the corresponding element's value. For example: + `false` is accessible via + `${settings.offline}`. +4. Java System Properties: All properties accessible via + `java.lang.System.getProperties()` are available as POM properties, + such as `${java.home}`. +5. `x`: Set within a \ element or an external files, the + value may be used as `${someVar}`. @@ -431,26 +431,26 @@ artifact. ``` -- **releases**, **snapshots**: These are the policies for each type of - artifact, Release or snapshot. With these two sets, a POM has the - power to alter the policies for each type independent of the other - within a single repository. For example, one may decide to enable - only snapshot downloads, possibly for development purposes. -- **enabled**: `true` or `false` for whether this repository is - enabled for the respective type (`releases` or `snapshots`). -- **updatePolicy**: This element specifies how often updates should - attempt to occur. Maven will compare the local POM's timestamp - (stored in a repository's maven-metadata file) to the remote. The - choices are: `always`, `daily` (default), `interval:X` (where X is - an integer in minutes) or `never`. -- **checksumPolicy**: When Maven deploys files to the repository, it - also deploys corresponding checksum files. Your options are to - `ignore`, `fail`, or `warn` on missing or incorrect checksums. -- **layout**: In the above description of repositories, it was - mentioned that they all follow a common layout. This is mostly - correct. Maven 2 has a default layout for its repositories; however, - Maven 1.x had a different layout. Use this element to specify which - if it is `default` or `legacy`. +- **releases**, **snapshots**: These are the policies for each type of + artifact, Release or snapshot. With these two sets, a POM has the + power to alter the policies for each type independent of the other + within a single repository. For example, one may decide to enable + only snapshot downloads, possibly for development purposes. +- **enabled**: `true` or `false` for whether this repository is + enabled for the respective type (`releases` or `snapshots`). +- **updatePolicy**: This element specifies how often updates should + attempt to occur. Maven will compare the local POM's timestamp + (stored in a repository's maven-metadata file) to the remote. The + choices are: `always`, `daily` (default), `interval:X` (where X is + an integer in minutes) or `never`. +- **checksumPolicy**: When Maven deploys files to the repository, it + also deploys corresponding checksum files. Your options are to + `ignore`, `fail`, or `warn` on missing or incorrect checksums. +- **layout**: In the above description of repositories, it was + mentioned that they all follow a common layout. This is mostly + correct. Maven 2 has a default layout for its repositories; however, + Maven 1.x had a different layout. Use this element to specify which + if it is `default` or `legacy`. #### Plugin Repositories diff --git a/content/markdown/support-and-training.md b/content/markdown/support-and-training.md index b6852068dd..1c291d4900 100644 --- a/content/markdown/support-and-training.md +++ b/content/markdown/support-and-training.md @@ -9,7 +9,7 @@ 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 +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 @@ -18,6 +18,7 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> + This page lists some of the companies that provide support and training for Apache Maven. The ASF does not endorse any of the organisations listed on this page nor any services that they may provide. @@ -94,15 +95,10 @@ There are several options for training, including traditional classroom courses, video training. [1]: http://takari.io/training.html - [2]: http://takari.io/training-outline.html - [3]: http://takari.io/ - [4]: mailto:training@takari.io - [5]: https://www.vogella.com/training/testbuild/maven.html - [6]: https://training.infosupport.com/en/courses/MAVEN/maven-in-practice +[7]: https://www.webagesolutions.com/search?q=Maven -[7]: https://www.webagesolutions.com/search?q=Maven \ No newline at end of file diff --git a/content/markdown/testimonials.md b/content/markdown/testimonials.md index 81e84a16d8..9563cbbafa 100644 --- a/content/markdown/testimonials.md +++ b/content/markdown/testimonials.md @@ -1,4 +1,5 @@ # Testimonials + + Keep on going with Maven 2.0 as it really rocks! Yesterday, I started experimenting with it and it's such a breeze, I'm becoming already productive with Maven, converting our hand-written Ant scripts to POM diff --git a/content/markdown/what-is-maven.md b/content/markdown/what-is-maven.md index bb848972ee..35ea4ed6e7 100644 --- a/content/markdown/what-is-maven.md +++ b/content/markdown/what-is-maven.md @@ -1,4 +1,5 @@ # Introduction +