[ https://issues.apache.org/jira/browse/MNG-7625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17646703#comment-17646703 ]
Slawomir Jaranowski commented on MNG-7625: ------------------------------------------ [~gnodet] I used {{org.apache.maven.settings.v4.SettingsMerger}} instead of {{{}org.apache.maven.settings.merge.MavenSettingsMerger{}}}. {{MavenSettingsMerger}} set {{sourceLevel}} on recessive Settings, this actions can be done once for the same instance of object. {{m-invoker-p}} need call merge {{Setings}} many time for each test project, as {{recessive Settings}} use copy of current {{Settings}} from running {{{}Session{}}}. Copy of {{Setings}} is done by {{{}SettingsUtils#copySettings{}}}, where in the real we have new {{Maven 3 Settings}} with references to old {{Maven 4 Settings}} as delegate. So {{MavenSettingsMerger#merge}} will change status of delegate object and finally current Maven Session. I don't understand what for is {{TrackableBase#SourceLevel}} it look like is only used by {{MavenSettingsMerger}} We also have two implementation of merging settings - {{v4.SettingsMerger}} and old {{MavenSettingsMerger}} - maybe one should be deprecated, and we should use one implementation. In m-invoker-p there is a hack for reset {{sourceLevel}}, but now is not working because real Session is in delegate field: https://github.com/apache/maven-invoker-plugin/blob/bfb75f9e52e93478dab710bb7243978c06f48d1a/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java#L1580-L1618 > Restore compatibility with Maven 3 - SettingsUtils#merge > -------------------------------------------------------- > > Key: MNG-7625 > URL: https://issues.apache.org/jira/browse/MNG-7625 > Project: Maven > Issue Type: Task > Affects Versions: 4.0.0-alpha-3 > Reporter: Slawomir Jaranowski > Assignee: Slawomir Jaranowski > Priority: Major > > Maven 3 has method: > {code:java} > void SettingsUtils#merge(org.apache.maven.settings.Settings, > org.apache.maven.settings.Settings, java.lang.String) > {code} > It is used by {{maven-invoker-plugin}} -- This message was sent by Atlassian Jira (v8.20.10#820010)