[ https://issues.apache.org/jira/browse/MNG-8141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17853581#comment-17853581 ]
ASF GitHub Bot commented on MNG-8141: ------------------------------------- cstamas commented on code in PR #1569: URL: https://github.com/apache/maven/pull/1569#discussion_r1632812563 ########## maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java: ########## @@ -816,6 +817,15 @@ private Model readEffectiveModel( // profile activation profileActivationContext.setProjectProperties(modelv4.getProperties()); + // profile check + HashSet<String> profileIds = new HashSet<>(); Review Comment: I like these changes (having _validation in validator_), so am tempted to introduce this change in 3.9 line as well... > Model Builder should report if not sure about "fully correct" outcome > --------------------------------------------------------------------- > > Key: MNG-8141 > URL: https://issues.apache.org/jira/browse/MNG-8141 > Project: Maven > Issue Type: Improvement > Components: Core > Reporter: Tamas Cservenak > Assignee: Tamas Cservenak > Priority: Major > Fix For: 4.0.0, 3.9.8, 4.0.0-beta-4 > > > ModelBuilder is component building models (POM + interpolating + parent > inheritance and many many more things), but it should not rely that built > model "was validated", as it MAY NOT been validated: for "furthest" models it > builds, like a parent of a some-level-dependency we use MIN level of > validation (minimal validation). > Still, while the model builder builds, it relies on several aspects of the > model, and it should ensure that the "output" (built model) is correct. Model > Builder hence must be changed in way, that IF it detects any issue _during > building_ of the model, and IF it appears with even slightest possibility > that it cannot deliver "correct output", it must add WARNs to model building > result with proper messages. > One typical case is when model building injects activated profiles (as they > can deliver properties and extra plugins and what not) and activation code > detects a "problem", like for example duplicated profile IDs being used (this > IS catched by validation, but not on MIN level!), hence, model builder cannot > guarantee that built model IS correct. > This change is really only to make Maven emit WARNINGs if project being built > has some "far POMs" (like parent pom of a dependency of a first level > dependency, as in reproducer). If model builder cannot be "100% sure" it > built model correctly, it should be reported. Moreover, WARNs of model > building result were simply neglected so fat (lost). Having warnings like > these would reveal "invalid parent POM" early, as it is case in issue > MNG-8131 for example. -- This message was sent by Atlassian Jira (v8.20.10#820010)