You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Samuel Langlois (JIRA)" <ji...@apache.org> on 2016/08/12 13:53:20 UTC
[jira] [Created] (MNG-6079) 3.4 regression: cannot override version
of a dependencyManagement in a submodule any more
Samuel Langlois created MNG-6079:
------------------------------------
Summary: 3.4 regression: cannot override version of a dependencyManagement in a submodule any more
Key: MNG-6079
URL: https://issues.apache.org/jira/browse/MNG-6079
Project: Maven
Issue Type: Bug
Components: Dependencies
Affects Versions: 3.4.0
Reporter: Samuel Langlois
Attachments: parent-pom.xml, pom.xml
When you import a {{<dependencyManagement>}} section from another pom, you can use a property for the version:
{code}
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
<version>${surefire.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
{code}
In Maven 3.3 and before, that version could be overridden in submodules, by overriding the property.
In Maven 3.4, this doesn't work any more: redefining the property doesn't change the dependencies which are defined.
I attach a simple example that uses surefire dependencies.
{{mvn dependency:list}} will yield different results:
* surefire-api:jar:2.12 with Maven 3.3, because this is the overridden version in the pom
* surefire-api:jar:2.10 with Maven 3.4 (as of snapshot 2016-08-06), which is the version defined in the parent pom
It is admittedly a corner case, or potentially a bug fix. In Maven 3.4, the behaviour of <dependencyManagement> is now more consistent with the one of <dependencies>, where you can't redefine a dependency version simply by overriding a property.
It is however a change in behaviour -- which broke my build.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)