ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Luke Renn (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IVY-1309) Exclude dosn't work in a more complex build enviroment
Date Fri, 06 Apr 2012 18:05:22 GMT

    [ https://issues.apache.org/jira/browse/IVY-1309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13248552#comment-13248552
] 

Luke Renn commented on IVY-1309:
--------------------------------

I'm able to fix this issue by making IvyNodeCallers not check the full callers list if it
finds the exclusions in the module descriptor.  In this case, equinox get re-included when
the kernel.userreqion caller is checked (since it's a dependency there).  I've got a fix locally,
but I'm pretty sure that will break dependency level excludes that really should get reincluded.
 

The relevant code is:

{code:title=IvyCallers.java|borderStyle=solid}
    boolean doesCallersExclude(String rootModuleConf, Artifact artifact, Stack callersStack)
{
        if (callersStack.contains(node.getId())) {
            return false;
        }
        callersStack.push(node.getId());
        try {
            Caller[] callers = getCallers(rootModuleConf);
            if (callers.length == 0) {
                return false;
            }

            for (int i = 0; i < callers.length; i++) {

                if (!callers[i].canExclude()) {
                    return false;
                }

                if (!doesExclude(md, rootModuleConf, callers[i].getCallerConfigurations(),
                    callers[i].getDependencyDescriptor(), artifact, callersStack)) {
                    // This is what kills us...if it's the a top level exclude, this check
shouldn't be happening or it's going to get unexcluded here.
                    return false;
                }
            }
            return true;
        } finally {
            callersStack.pop();
        }
    }

{code} 
                
> Exclude dosn't work in a more complex build enviroment
> ------------------------------------------------------
>
>                 Key: IVY-1309
>                 URL: https://issues.apache.org/jira/browse/IVY-1309
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>            Reporter: Christopher Frost
>         Attachments: kernel.zip
>
>
> We are using ant 1.8.2 and Ivy 2.1.0 for our build. When resolving an ivy file the module
wide exclude fails to stop a matching transitive dependency from coming in. I have reduced
the build down as much as possible to try and make it easy to diagnose but if I strip any
more out then the problem goes away. I don't believe there is anything wrong with what's there,
it's from a very mature system used to build all the Springsource projects internally. I will
upload a zip to reproduce. 
> 1. Unzip the zip file.
> 2. At the command line go in to the unzipped, 'kernel' directory.
> 3. run 'ant clean package'
> 4. in the target directory just created there will be a 'org.eclipse.osgi-3.7.0.v20110613'
file, this is excluded in the ivy file.
> The ivy and build files are pretty minimal but I can't see anything I've done wrong.
The artifacts it's pulling in are in the ivy-cache/integration-repo directories so nothing
needs to be downloaded.
> Chris.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message