[ 
http://jira.codehaus.org/browse/MRELEASE-454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=247472#action_247472
 ] 

Pedro Rodriguez commented on MRELEASE-454:
------------------------------------------

The problem is that the current code rewrites the dependencies already 
resolved. 

org.apache.maven.shared.release.phase.AbstractRewritePomsPhase, Line 272 

if ( project.getDependencyManagement() != null )
{
    Element dependencyRoot = rootElement.getChild( "dependencyManagement", 
namespace );
    if ( dependencyRoot != null )
    {
        rewriteDependencies( 
project.getDependencyManagement().getDependencies(), dependencyRoot,
                             mappedVersions, resolvedSnapshotDependencies, 
originalVersions, projectId,
                             properties, result, releaseDescriptor );
    }
}
        
A simple fix could be to add the "imported dependency management" dependencies 
to the dependencies list we want to rewrite:

if ( project.getDependencyManagement() != null )
{
    Element dependencyRoot = rootElement.getChild( "dependencyManagement", 
namespace );
    if ( dependencyRoot != null )
    {
        List dependencies = new ArrayList( 
project.getDependencyManagement().getDependencies() );

        // Add "imported dependencyManagement" to the dependencies list to 
allow them to be rewrited as well   
        Element dependencyManagementDependenciesRoot = 
dependencyRoot.getChild("dependencies", namespace);
        if( dependencyManagementDependenciesRoot != null ) 
        {
                List dependencyManagementDependencyElements = 
dependencyManagementDependenciesRoot.getChildren();
                for (Iterator iterator = dependencyManagementDependencyElements
                                        .iterator(); iterator.hasNext();) 
                {

                        Element dependencyManagementDependency = (Element) 
iterator.next();

                        Element groupId = 
dependencyManagementDependency.getChild( "groupId", namespace );
                        Element artifactId = 
dependencyManagementDependency.getChild( "artifactId", namespace );
                        Element version = 
dependencyManagementDependency.getChild( "version", namespace );
                        Element scope = 
dependencyManagementDependency.getChild( "scope", namespace );
                        Element type = dependencyManagementDependency.getChild( 
"type", namespace );

                        if( groupId != null && artifactId != null && version != 
null && scope != null && type != null && 
                                        "pom".equals(type.getText()) && 
"import".equals(scope.getText())  ) 
                        {

                                Dependency importedDependencyManagement = new 
Dependency();

                                importedDependencyManagement.setGroupId( 
groupId.getText() );
                                importedDependencyManagement.setArtifactId( 
artifactId.getText() );
                                importedDependencyManagement.setVersion( 
version.getText() );
                                importedDependencyManagement.setType( 
type.getText() );
                                importedDependencyManagement.setScope( 
scope.getText() );

                                dependencies.add(importedDependencyManagement);
                        }
                }
        }

        rewriteDependencies( dependencies, dependencyRoot,
             mappedVersions, resolvedSnapshotDependencies, originalVersions, 
projectId,
             properties, result, releaseDescriptor );
    }
}



> The Release-Plugin does not rewrite dependencies in the DependencyManagement 
> with scope "import"
> ------------------------------------------------------------------------------------------------
>
>                 Key: MRELEASE-454
>                 URL: http://jira.codehaus.org/browse/MRELEASE-454
>             Project: Maven 2.x Release Plugin
>          Issue Type: Bug
>          Components: prepare
>    Affects Versions: 2.0-beta-9
>            Reporter: Jens Mühlenhoff
>
> Add the following node to the pom. Then prepare the release and this section 
> will not be rewriten, because the "imported" entry will not appear in 
> project.getDependencyManagement().getDependencies(). This methode returns all 
> the resolved dependencies. In this situation the transformDocument method 
> from AbstractRewritePomsPhase could not change the given dependencies, 
> because it is not visible to the method.
> <dependencyManagement>
>               <dependencies>
>                       <dependency>
>                               <groupId>dist</groupId>
>                               <artifactId>deps</artifactId>
>                               <type>pom</type>
>                               <version>4.0.4-SNAPSHOT</version>
>                               <scope>import</scope>
>                       </dependency>
>               </dependencies>
> </dependencyManagement>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to