Fix false parent cycle detection with flatten-maven-plugin (fixes #11399) (#11400) (#11403)

When using flatten-maven-plugin with updatePomFile=true and parent expansion,
Maven incorrectly detected a parent cycle during the install phase. The error
occurred because the consumer POM builder was using Path instead of ModelSource
when reading the flattened POM.

This change updates the PomArtifactTransformer API to use ModelSource instead
of Path. ModelSource includes the necessary context (base directory, ModelLocator)
to properly resolve parent POMs and avoid false cycle detection.

Changes:
- Updated PomArtifactTransformer.transform() to accept ModelSource instead of Path
- Modified ConsumerPomArtifactTransformer to create ModelSource with proper resolution context
- Updated DefaultConsumerPomBuilder and related classes to work with ModelSource
- Added integration test to verify the fix

Fixes #11399

(cherry picked from commit 5ec059c2d75393aaada2d2c1d0fe0100a1f79554)
10 files changed
tree: c7c9bd39db2d64e6f2ca6e13b6349ea307e7f7dc
  1. .github/
  2. .idea/
  3. .mvn/
  4. apache-maven/
  5. api/
  6. compat/
  7. impl/
  8. its/
  9. src/
  10. .asf.yaml
  11. .git-blame-ignore-revs
  12. .gitattributes
  13. .gitignore
  14. CONTRIBUTING.md
  15. deploySite.sh
  16. doap_Maven.rdf
  17. Jenkinsfile
  18. LICENSE
  19. NOTICE
  20. pom.xml
  21. README.md
README.md

Apache Maven

Apache License, Version 2.0, January 2004 Maven Central 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