[MNG-5668] Dynamic component resolution to allow older Maven versions to fail gracefully

Example on a project that has the experimental features enabled:

    $ mvn -version
    Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T19:33:14+01:00)
    Maven home: /usr/local/Cellar/maven/3.5.4/libexec
    Java version: 1.8.0_152, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home/jre
    Default locale: en_IE, platform encoding: UTF-8
    OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"
    $ mvn validate
    [ERROR] The project uses experimental features that require exactly Maven 3.7.0-SNAPSHOT -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MavenExecutionException
2 files changed
tree: 2243265d19d06ed175b2625175712b5395dc5588
  1. .github/
  2. apache-maven/
  3. maven-artifact/
  4. maven-builder-support/
  5. maven-compat/
  6. maven-core/
  7. maven-embedder/
  8. maven-experiments/
  9. maven-feature/
  10. maven-model/
  11. maven-model-builder/
  12. maven-plugin-api/
  13. maven-repository-metadata/
  14. maven-resolver-provider/
  15. maven-settings/
  16. maven-settings-builder/
  17. maven-slf4j-provider/
  18. maven-slf4j-wrapper/
  19. src/
  20. .asf.yaml
  21. .gitattributes
  22. .gitignore
  23. CONTRIBUTING.md
  24. deploySite.sh
  25. doap_Maven.rdf
  26. Jenkinsfile
  27. LICENSE
  28. NOTICE
  29. pom.xml
  30. README.md
README.md

Apache Maven

Apache License, Version 2.0, January 2004 Maven Central 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 release source from our download page.

Contributing

If you are interested in the development of Maven, please consult the documentation first and afterwards you are welcome to join the developers mailing list to ask question 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

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 1.8+
  • Maven 3.0.5 or later
  • Run Maven, specifying a location into which the completed Maven distro should be installed:
mvn -DdistributionTargetDir="$HOME/app/maven/apache-maven-3.7.x-SNAPSHOT" clean package