[ https://issues.apache.org/jira/browse/SUREFIRE-1385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17864170#comment-17864170 ]
Konrad Windszus commented on SUREFIRE-1385: ------------------------------------------- I can see use cases for letting CLI properties overwrite surefire plugin system properties and vice versa. So just changing the order of precedence seems dangerous. Also the default Maven behaviour is that properties passed via CLI take precedence over properties defined in POM. I would rather propose to either a) introduce a new boolean flag for toggling the order of precedence for system properties or b) introduce a new parameter {{userPropertyVariables}} which explicitly overwrites the user properties from the calling Maven session WDYT? > System properties defined in the Surefire and Failsafe plugin configuration > should override user properties > ----------------------------------------------------------------------------------------------------------- > > Key: SUREFIRE-1385 > URL: https://issues.apache.org/jira/browse/SUREFIRE-1385 > Project: Maven Surefire > Issue Type: Improvement > Components: Maven Failsafe Plugin, Maven Surefire Plugin > Affects Versions: 2.20 > Reporter: Guillaume Boué > Priority: Major > > Consider a build with the following POM configuration for the Maven Failsafe > Plugin: > {code:xml} > <configuration> > <systemPropertyVariables> > <prop>foo</prop> > </systemPropertyVariables> > </configuration> > {code} > When running the build with the command line {{mvn -Dprop=bar ...}}, the > tests would be passed a system property with a value of {{bar}} instead of > {{foo}}. > This is counter-intuitive since direct configuration of the plugin is > overriden by the more general properties passed on the command line. I would > have expected the closer definition in the POM to override the one passed > with the CLI. Furthermore, in the case of the above sample, it would not be > possible for the tests run by the Failsafe Plugin to have a system property > {{prop}} with a value of {{foo}} if the build happens to already define a > system property with the same name. While using a different name to avoid a > clash is possible, it still doesn't make the test self-contained and > consistent since anyone could run Maven with that other name and compromise > the test that really relies on the system property having a value of {{foo}}. > The proposal is thus to make the {{systemPropertyVariables}} and > {{systemPropertiesFile}} configuration elements of the Surefire and Failsafe > Plugin take precedence over user properties passed on the command line. > Proposed commit > [4de017b38b101b0b28f9fbed135eae3921b99d0d|http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/4de017b3] > on SUREFIRE-1385 branch. -- This message was sent by Atlassian Jira (v8.20.10#820010)