incubator-ivy-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Iain Coulter (JIRA)" <>
Subject [jira] Commented: (IVY-357) Update -Automatically invoke Any build scripts for dependencies
Date Wed, 10 Jan 2007 11:38:27 GMT


Iain Coulter commented on IVY-357:

I've created a partial fix for this.   This doesn't currently use an ant  task but instead
modifies the retrieve code to handle a special "unzip" artifact type.   When a file of this
type is encountered it is unzipped to the specified location instead of copying the file,
this also follows for dependencies which are also of type unzip.

This is a patch from the 1.4.1 code base.

> import fr.jayasoft.ivy.util.ZipUtil;
<                     if (!_checkUpToDate || !upToDate(archive, destFile)) {
>                     if ("unzip".equals(artifact.getType())) {
>                       Message.verbose("\t\tto and unzipping"+destFile.getParent());
>                       ZipUtil.unzip(archive,new File(destFile.getParent()), false);
>                     }
>                     else if (!_checkUpToDate || !upToDate(archive, destFile)) {

Also attached to this issue is which implements ZipUtil class referenced in the
above code

> Update -Automatically invoke Any build scripts for dependencies
> ---------------------------------------------------------------
>                 Key: IVY-357
>                 URL:
>             Project: Ivy
>          Issue Type: New Feature
>          Components: Ant
>            Reporter: Iain Coulter
>         Assigned To: Xavier Hanin
>             Fix For: 1.4-RC1
>         Attachments:
> See this forum thread for more details:
> The following is from one message in that thread:
> A resolver that wraps another resolver but also can invoke an ant build script for a
dependency if an Ant script is available. The build script would be invoked at most once per
build for each dependency. Something like this:
> 1. Need latest version for dependency "A".
> 2. Is there an Ant script for dependency "A"?
> - If yes: invoke script if it has not yet been invoked for this build
> 3. Call wrapped resolver to actually retrieve the published artifact(s).
> Note: I don't think this would apply if a specific version is being referenced - only
if something like "test.integration" is being referenced?
> The trick then would be to figure out if a) a dependency has an Ant build script, b)
where the script is located, and c) what target to call on the script.
> Then, all I do is tell Ivy to resolve in my main Ant build and it will do the rest to
ensure that all my dependencies are up-to-date.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message