In this documentation, it is suggested to use "@{argLine}". What is the difference between "@{argLine}" and "${argLine}" ? Is there a scope difference ?
Is this documented in maven doc ? (can't find it...).
CodePudding user response:
@{argLine} instead of the usual ${argLine} is called "late property evaluation". This is only supported by the Maven Surefire Plugin.
From the documentation:
How do I use properties set by other plugins in
argLine?Maven does property replacement for
${...}values in pom.xml before any plugin is run. So Surefire would never see the place-holders in its argLine property.Since the Version 2.17 using an alternate syntax for these properties,
@{...}allows late replacement of properties when the plugin is executed, so properties that have been modified by other plugins will be picked up correctly.
