Fix BOM packaging in consumer POMs (#11427) This commit addresses two issues with BOM (Bill of Materials) handling in consumer POMs: 1. BOM packaging not transformed to POM in consumer POMs: When a project uses packaging=bom, the consumer POM was incorrectly retaining this packaging type. Since 'bom' is not a valid packaging type in Maven 4.0.0 model, this caused errors when the consumer POM was used. The fix ensures that BOM packaging is always transformed to 'pom' in consumer POMs, regardless of whether flattening is enabled. 2. Dependency versions preserved in dependencyManagement: The effective model already contains resolved versions for dependencies in dependencyManagement sections. The fix ensures these versions are properly preserved in the consumer POM for both flattened and non-flattened BOMs. Changes: - Modified DefaultConsumerPomBuilder.build() to detect BOMs based on original packaging and handle them appropriately - Added buildBomWithoutFlatten() method to handle BOMs when flattening is disabled, using the raw model but still transforming packaging - Added integration test to verify both issues are fixed Fixes issues reported in: https://lists.apache.org/thread/41q40v598pd8mr32lmgwdfb2xm7lzm6l
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.
More information can be found on Apache Maven Homepage. Questions related to the usage of Maven should be posted on the Maven User List.
You can download the release source from our download page.
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.
This code is under the Apache License, Version 2.0, January 2004.
See the NOTICE file for required notices and attributions.
Do you like Apache Maven? Then donate back to the ASF to support the development.
If you want to bootstrap Maven, you'll need:
mvn -DdistributionTargetDir="$HOME/app/maven/apache-maven-4.1.x-SNAPSHOT" clean package