[ 
https://issues.apache.org/jira/browse/MNG-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michel Schudel updated MNG-7091:
--------------------------------
    Description: 
It seems that dependency exclusions in the pom of a third-party library affect 
the dependencies of the application that uses that library, even when that 
third-party library is in test scope.

I've created a project at [https://github.com/MichelSchudel/example-project] 
that reproduces the problem. Below is the information from the readme.md that 
you can use to reproduce the issue.

 

This project showcases weird dependency behaviour as far as exclusions go.

 

There are two dependencies in this project:
 * axual-platform-test-core (test scope)

 * nimbus-jose-jwt

 

There is no additional source code, because we don't need it to showcase the 
issue.

 

When we comment out the {{axual-platform-test-core}} dependency, we get a 
dependency tree with three libs:
 * nimbus-jose-jwt

 * json-smart (dep of nimbus)

 * accessors-smart (dep of nimbus)

 

When we undo the commen-out of "axual-platform-test-core" dependency, we get a 
dependency tree where the "json-smart" and "accessors-smart" deps have 
_dissappeared_ from the Nimbus tree and are only dependencies of the 
"axual-platform-test-core".

 

Looking at the pom of "axual-platform-test-core", it excludes "accessors-smart" 
from its "json-smart" dependency and replaces it with another version:
 <dependency>
 <groupId>net.minidev</groupId>
 <artifactId>json-smart</artifactId>
 <version>2.2.1</version>
 <scope>compile</scope>
 <exclusions>
 <exclusion>
 <groupId>net.minidev</groupId>
 <artifactId>accessors-smart</artifactId>
 </exclusion>
 </exclusions>
 </dependency>
 <dependency>
 <groupId>net.minidev</groupId>
 <artifactId>accessors-smart</artifactId>
 <version>1.1</version>
 <scope>compile</scope>
  

The real issue here is: *why does this have an impact on the compile scope 
dependency tree of my application?* Since I'm only using 
{{axual-platform-test-core}} in _test_ scope, exclusions should have no impact 
on the _compile scope_, right?

  was:
It seems that dependency exclusions in the pom of a third-party library affect 
the dependencies of the application that uses that librarty, even when that 
third-party library is in test scope.

I've created a project at [https://github.com/MichelSchudel/example-project] 
that reproduces the problem. Below is the information from the readme.md that 
you can use to reproduce the issue.

 

This project showcases weird dependency behaviour as far as exclusions go.

 

There are two dependencies in this project:
 * axual-platform-test-core (test scope)

 * nimbus-jose-jwt

 

There is no additional source code, because we don't need it to showcase the 
issue.

 

When we comment out the {{axual-platform-test-core}} dependency, we get a 
dependency tree with three libs:
 * nimbus-jose-jwt

 * json-smart (dep of nimbus)

 * accessors-smart (dep of nimbus)

 

When we undo the commen-out of "axual-platform-test-core" dependency, we get a 
dependency tree where the "json-smart" and "accessors-smart" deps have 
_dissappeared_ from the Nimbus tree and are only dependencies of the 
"axual-platform-test-core".

 

Looking at the pom of "axual-platform-test-core", it excludes "accessors-smart" 
from its "json-smart" dependency and replaces it with another version:
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.2.1</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>net.minidev</groupId>
<artifactId>accessors-smart</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>accessors-smart</artifactId>
<version>1.1</version>
<scope>compile</scope>
 

The real issue here is: *why does this have an impact on the compile scope 
dependency tree of my application?* Since I'm only using 
{{axual-platform-test-core}} in _test_ scope, exclusions should have no impact 
on the _compile scope_, right?


> Exclusions in test scope seem to affect compile scope
> -----------------------------------------------------
>
>                 Key: MNG-7091
>                 URL: https://issues.apache.org/jira/browse/MNG-7091
>             Project: Maven
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 3.6.3
>            Reporter: Michel Schudel
>            Priority: Major
>
> It seems that dependency exclusions in the pom of a third-party library 
> affect the dependencies of the application that uses that library, even when 
> that third-party library is in test scope.
> I've created a project at [https://github.com/MichelSchudel/example-project] 
> that reproduces the problem. Below is the information from the readme.md that 
> you can use to reproduce the issue.
>  
> This project showcases weird dependency behaviour as far as exclusions go.
>  
> There are two dependencies in this project:
>  * axual-platform-test-core (test scope)
>  * nimbus-jose-jwt
>  
> There is no additional source code, because we don't need it to showcase the 
> issue.
>  
> When we comment out the {{axual-platform-test-core}} dependency, we get a 
> dependency tree with three libs:
>  * nimbus-jose-jwt
>  * json-smart (dep of nimbus)
>  * accessors-smart (dep of nimbus)
>  
> When we undo the commen-out of "axual-platform-test-core" dependency, we get 
> a dependency tree where the "json-smart" and "accessors-smart" deps have 
> _dissappeared_ from the Nimbus tree and are only dependencies of the 
> "axual-platform-test-core".
>  
> Looking at the pom of "axual-platform-test-core", it excludes 
> "accessors-smart" from its "json-smart" dependency and replaces it with 
> another version:
>  <dependency>
>  <groupId>net.minidev</groupId>
>  <artifactId>json-smart</artifactId>
>  <version>2.2.1</version>
>  <scope>compile</scope>
>  <exclusions>
>  <exclusion>
>  <groupId>net.minidev</groupId>
>  <artifactId>accessors-smart</artifactId>
>  </exclusion>
>  </exclusions>
>  </dependency>
>  <dependency>
>  <groupId>net.minidev</groupId>
>  <artifactId>accessors-smart</artifactId>
>  <version>1.1</version>
>  <scope>compile</scope>
>   
> The real issue here is: *why does this have an impact on the compile scope 
> dependency tree of my application?* Since I'm only using 
> {{axual-platform-test-core}} in _test_ scope, exclusions should have no 
> impact on the _compile scope_, right?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to