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

Christian Koppen updated MNG-5634:
----------------------------------

    Description: 
The {{import}} scope does not work as expected when used in a scenario with 
inheritance and profiles.

Please have a look at the attached testcase to understand the problem. 

We have a project POM that declares a dependency. The scope of this dependency 
({{runtime}}) is imported from a BOM POM ({{runtime-bom}}). The project POM has 
a parent POM which defines two profiles. In the first profile ({{direct}}), the 
scope of the dependency is set to {{provided}}. In the second profile 
({{bom}}), another BOM POM ({{provided-pom}}) is imported that defines the 
scope of the dependency as {{provided}}.

When maven is executed without defining profiles, the dependency is resolved in 
scope {{runtime}}. This is what I expect.
When maven is executed with profile {{direct}}, the dependency is resolved in 
scope {{provided}}. This is what I expect.
When maven is executed with profile {{bom}}, the dependency is resolved in 
scope {{runtime}}. I expect the scope to be {{provided}}.

The 
[documentation|http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope]
 states that a dependency with scope {{import}} is *replaced* by the 
{{dependencyManagement}}-block of the imported POM. This is not true in this 
case.

Output from the command line:
{noformat}
import-scope-in-profile\project>mvn -Pdirect dependency:tree
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ project ---
[INFO] org.apache.maven.issues:project:jar:1.0-SNAPSHOT
[INFO] \- org.apache.maven.issues:dependency:jar:1.0SNAPSHOT:provided

import-scope-in-profile\project>mvn -Pbom dependency:tree
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ project ---
[INFO] org.apache.maven.issues:project:jar:1.0-SNAPSHOT
[INFO] \- org.apache.maven.issues:dependency:jar:1.0-SNAPSHOT:runtime
{noformat}

  was:
The import scope does not work as expected when used in a scenario with 
inheritance and profiles.

Please have a look at the attached testcase to understand the problem. 
We have a project POM that declares a dependency. The scope of this dependency 
('runtime') is imported from a BOM POM ('runtime-bom'). The project POM has a 
parent POM which defines two profiles. In the first profile ('direct'), the 
scope of the dependency is set to 'provided'. In the second profile ('bom'), 
another BOM POM ('provided-pom') is imported that defines the scope of the 
dependency as 'provided'. 

When maven is executed without defining profiles, the dependency is resolved in 
scope 'runtime'. This is what I expect.
When maven is executed with profile 'direct', the dependency is resolved in 
scope 'provided'. This is what I expect.
When maven is executed with profile 'bom', the dependency is resolved in scope 
'runtime'. I expect the scope to be 'provided'.

The documentation ( 
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
 ) states that a dependency with scope 'import' is *replaced* by the 
dependencyManagement-block of the imported POM. This is not true in this case.

Output from the command line:
{noformat}
import-scope-in-profile\project>mvn -Pdirect dependency:tree
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ project ---
[INFO] org.apache.maven.issues:project:jar:1.0-SNAPSHOT
[INFO] \- org.apache.maven.issues:dependency:jar:1.0SNAPSHOT:provided

import-scope-in-profile\project>mvn -Pbom dependency:tree
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ project ---
[INFO] org.apache.maven.issues:project:jar:1.0-SNAPSHOT
[INFO] \- org.apache.maven.issues:dependency:jar:1.0-SNAPSHOT:runtime
{noformat}


> Import scope is not respected in profiles
> -----------------------------------------
>
>                 Key: MNG-5634
>                 URL: https://jira.codehaus.org/browse/MNG-5634
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Dependencies, Inheritance and Interpolation
>    Affects Versions: 3.0.5
>            Reporter: Christian Koppen
>         Attachments: import-scope-in-profile.zip
>
>
> The {{import}} scope does not work as expected when used in a scenario with 
> inheritance and profiles.
> Please have a look at the attached testcase to understand the problem. 
> We have a project POM that declares a dependency. The scope of this 
> dependency ({{runtime}}) is imported from a BOM POM ({{runtime-bom}}). The 
> project POM has a parent POM which defines two profiles. In the first profile 
> ({{direct}}), the scope of the dependency is set to {{provided}}. In the 
> second profile ({{bom}}), another BOM POM ({{provided-pom}}) is imported that 
> defines the scope of the dependency as {{provided}}.
> When maven is executed without defining profiles, the dependency is resolved 
> in scope {{runtime}}. This is what I expect.
> When maven is executed with profile {{direct}}, the dependency is resolved in 
> scope {{provided}}. This is what I expect.
> When maven is executed with profile {{bom}}, the dependency is resolved in 
> scope {{runtime}}. I expect the scope to be {{provided}}.
> The 
> [documentation|http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope]
>  states that a dependency with scope {{import}} is *replaced* by the 
> {{dependencyManagement}}-block of the imported POM. This is not true in this 
> case.
> Output from the command line:
> {noformat}
> import-scope-in-profile\project>mvn -Pdirect dependency:tree
> [INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ project ---
> [INFO] org.apache.maven.issues:project:jar:1.0-SNAPSHOT
> [INFO] \- org.apache.maven.issues:dependency:jar:1.0SNAPSHOT:provided
> import-scope-in-profile\project>mvn -Pbom dependency:tree
> [INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ project ---
> [INFO] org.apache.maven.issues:project:jar:1.0-SNAPSHOT
> [INFO] \- org.apache.maven.issues:dependency:jar:1.0-SNAPSHOT:runtime
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Reply via email to