Apache Maven core
Go to file
Guillaume Nodet 2d224623a3
[MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700)
With the introduction of the build pom and raw -> build pom transformation, the construction of the effective poms in two steps become very problematic. Over the time, multiple caches have been added to the ProjectBuilder and ModelBuilder related classes which are often redundant.

This PR thus changes things and move the recursive construction of the models fully into the ModelBuilder in a single call. When building build poms, a first step is done by parsing the file models from the root, then building all needed effective models from those. All the inference can be cleanly done because the builder has all the file models ready. The result will be used by the ProjectBuilder to build the projects.
2024-09-28 11:03:24 +02:00
.github Add mvn3 to dependabot as well 2024-08-21 11:07:48 +02:00
.mvn Improve the use of checkstyle in the build (#477) 2021-07-06 08:09:20 +02:00
apache-maven [MNG-8263] Remove last remnants of wrapper integration (#1736) 2024-09-24 09:54:24 +02:00
api [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
build [MNG-7553] New clean API with immutable model (#703) 2022-10-02 10:41:25 +02:00
maven-api-impl [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
maven-artifact [maven-release-plugin] prepare for next development iteration 2024-08-30 14:59:00 +02:00
maven-bom [maven-release-plugin] prepare for next development iteration 2024-08-30 14:59:00 +02:00
maven-builder-support [maven-release-plugin] prepare for next development iteration 2024-08-30 14:59:00 +02:00
maven-compat [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
maven-core [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
maven-di [MNG-8259] Improve Sisu / DI bridge (#1722) 2024-09-18 13:05:13 +02:00
maven-docgen [MNG-8190] Restrict build pom feature to 4.1.0 model version (#1707) 2024-09-11 18:31:06 +02:00
maven-embedder No issue, no change (#1745) 2024-09-24 17:34:45 +02:00
maven-jline [maven-release-plugin] prepare for next development iteration 2024-08-30 14:59:00 +02:00
maven-model [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
maven-model-builder [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
maven-plugin-api [maven-release-plugin] prepare for next development iteration 2024-08-30 14:59:00 +02:00
maven-repository-metadata [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
maven-resolver-provider [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
maven-settings [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
maven-settings-builder [maven-release-plugin] prepare for next development iteration 2024-08-30 14:59:00 +02:00
maven-slf4j-provider [maven-release-plugin] prepare for next development iteration 2024-08-30 14:59:00 +02:00
maven-slf4j-wrapper [maven-release-plugin] prepare for next development iteration 2024-08-30 14:59:00 +02:00
maven-toolchain-builder [maven-release-plugin] prepare for next development iteration 2024-08-30 14:59:00 +02:00
maven-toolchain-model [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
maven-xml-impl [maven-release-plugin] prepare for next development iteration 2024-08-30 14:59:00 +02:00
src [MNG-8120] Refactor ModelBuilder and ProjectBuilder (#1700) 2024-09-28 11:03:24 +02:00
.asf.yaml Disable automated JIRA comments from GitHub 2024-08-31 00:33:15 +02:00
.git-blame-ignore-revs [MNG-7601] Fix git blame rev 2022-11-22 15:38:45 +01:00
.gitattributes Fixed line feeds, added .gitattributes 2013-01-29 16:27:02 +01:00
.gitignore [MNG-8085] switch png+imagemap to svg 2024-03-24 19:29:19 +01:00
CONTRIBUTING.md (doc) Update dead link for Github PR docs 2021-10-10 11:48:27 +02:00
Jenkinsfile [MNG-8061] Maven: Require Java 17 (#1430) 2024-03-03 22:28:30 +01:00
Jenkinsfile.its [MWRAPPER-14] remove Maven Wrapper from core 2021-12-26 17:42:35 +01:00
Jenkinsfile.s390x [MNG-8061] Maven: Require Java 17 (#1430) 2024-03-03 22:28:30 +01:00
LICENSE Add a LICENSE/NOTICE that can be picked up for the src assembly 2013-09-11 16:39:30 -04:00
NOTICE update copyright year 2019-11-16 23:18:37 +01:00
README.md use new Reproducible Central badge endpoint 2024-08-19 01:17:25 +02:00
deploySite.sh Use properly quoted shell arguments with "$@" 2019-06-10 20:26:40 +02:00
doap_Maven.rdf Update doap w/ 3.9.x 2024-08-17 23:19:36 +02:00
pom.xml [MNG-8249] Provide an annotation processor for DI (#1704) 2024-09-10 19:18:47 +02:00
prepare-svg.sh [MNG-8085] switch png+imagemap to svg 2024-03-24 19:29:19 +01:00

README.md

Apache Maven

ASF Jira Apache License, Version 2.0, January 2004 Maven Central Reproducible Builds Jenkins Status Jenkins tests

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

If you think you have found a bug, please file an issue in the Maven Issue Tracker.

Documentation

More information can be found on Apache Maven Homepage. Questions related to the usage of Maven should be posted on the Maven User List.

Where can I get the latest release?

You can download the release source from our download page.

Contributing

If you are interested in the development of Maven, please consult the documentation first and afterward you are welcome to join the developers mailing list to ask questions or discuss new ideas/features/bugs etc.

Take a look into the contribution guidelines.

License

This code is under the Apache License, Version 2.0, January 2004.

See the NOTICE file for required notices and attributions.

Donations

Do you like Apache Maven? Then donate back to the ASF to support the development.

Quick Build

If you want to bootstrap Maven, you'll need:

  • Java 17+
  • Maven 3.6.3 or later
  • Run Maven, specifying a location into which the completed Maven distro should be installed:
    mvn -DdistributionTargetDir="$HOME/app/maven/apache-maven-4.0.x-SNAPSHOT" clean package