[
https://issues.apache.org/jira/browse/IVY-594?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12721549#action_12721549
]
Josh Guice commented on IVY-594:
--------------------------------
I too have this problem. In the buildlist example in the docs it says this
"Builds a list of build.xml files sorted according to the ivy.xml files found
in an ivy directory relative to those build files. Only build.xml files of
modules which are dependencies of myapp (either direct or transitive) are put
in the result list."
The caveat is that all the ivy files between the root module and the transitive
dependency (down the chain) must be present in the local work area for a
complete buildlist to be generated (complete is defined as one that include all
dependencies [transitive included] that are available locally to build)
In the OP's example, if you only have A and C present in the work dir and you
compute a buildlist based on root A then C will not be included in the
buildlist. But if you also put module B in the work dir, then ivy can then
follow the transitive trail and correctly calculate a build path C,B,A.
I suppose what we're asking is that if I only have A and C in my local work dir
and they are dependent transitively via B, then buildlist should be able to
figure that out and produce a build-path including A and C.
When buildlist sees that A depends on B, but no ivy.xml is present locally for
B, it should perform a resolve operation to get the ivy.xml for B (using
whatever selectors are in A's dependency block). Then follow the dependencies
in B's remotely resolved ivy.xml adding any dependencies that *are* present
locally to the build path (further resolving any that aren't present,
continuing to add any local matches, until it exhausts the dependency graph).
In short, given A -> B -> C and locally present A and C I would expect ivy to
be able to correctly give me a build path of C,A when A is the root.
Hope this helps clarify the requirements a bit.
The use-case for this is that without this functionality developers must ensure
that they have downloaded all modules in the dependency chain (rather than just
the ones they need to change). This makes setup a bit complicated in an
environment where there are sometimes a dozen or more modules in the dependency
graph. Ideally they could only checkout the modules they want to modify and if
they are related at all ivy would correctly compute a build path included them.
Thanks,
Josh
> Add a transitive attribute to buildlist
> ---------------------------------------
>
> Key: IVY-594
> URL: https://issues.apache.org/jira/browse/IVY-594
> Project: Ivy
> Issue Type: New Feature
> Reporter: Gilles Scokart
>
> Currently the buildlist task only order the given ivy file without
> considering the dependencies that are not in the ivy files.
> For instance if you have module A depending on B, and B depending on C, and
> you ask a buildlist ordoering A and C without giving the ivy.xml file of B,
> the result will be unknown.
> We should add an optional parameter 'transitive' to ask to take into account
> the transitive dependencies of the modules.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.