Re: Quick rundown for using Ivy with multiple projects?
> I believe I now better understand the provided only adds jars if not > already there?? Yes. What I was looking for was some way to specify "B depends on the *source* of A located over *there*". I've now so far managed to tell Ivy "B depends on the *jar* of A located over there". As it comes to building, I guess I could mimic that behavior through the Ant files, but it feels a little bit clunky because the top-level Ant tasks would then work differently. For example, a resolve would always need to compile A instead of simply doing a resolve. Additionally, I have the odd feeling that I missed the easy solution completely, because I can't be the first one trying to do a multi-module structure like this in Ivy. On Tue, 29 Dec 2020 23:13:58 -0500 Rob Silver wrote: > Hello Robert 'Bobby' Zenz, > > I too have been slow to respond for good reason. I had a family > crisis that prevented me from responding. > I believe I now better understand the provided only adds jars if not > already there?? > > > > On Sat, Dec 5, 2020 at 11:13 AM Robert 'Bobby' Zenz < > robert.z...@bonsaimind.org> wrote: > > > Thanks for the fast response, sorry for my slow response. > > > > This is what I needed on the top-level, but how do I reference > > correctly project A in project B? Assuming that B depends on A? > > > > I guess I need to set up a resolver, but so far I have a hard time > > understanding what exactly I need to do. > > > > > > On Sat, 28 Nov 2020 21:36:47 +0530 > > Jaikiran Pai wrote: > > > > > And of course, you then just do: > > > > > > ant clean deploy > > > > > > from the top level directory and that will then run those targets > > > for all sub-projects. > > > > > > -Jaikiran > > > > > > On 28/11/20 9:34 pm, Jaikiran Pai wrote: > > > > It's a bit too late here, so I'll keep this short for now. In > > > > one of the projects that we have, which has a similar > > > > structure, we use Ivy's buildlist task[1] to first create the > > > > ordered list of projects that need to be built and then invoke > > > > on that ordered list. So the top level build.xml will have > > > > something like ("clean" and "deploy" are just example common > > > > targets in all these projects): > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > [1] https://ant.apache.org/ivy/history/2.5.0/use/buildlist.html > > > > > > > > -Jaikiran > > > > > > > > On 28/11/20 9:27 pm, Robert 'Bobby' Zenz wrote: > > > >> Can somebody give me a quick rundown regarding the usage of > > > >> Ant+Icy when having multiple projects in the same repository. > > > >> I'm a little bit confusing regarding how to define the > > > >> dependency. > > > >> > > > >> Let's assume that Project AB has the two modules A and B: > > > >> > > > >> Parent AB > > > >> |-Project A > > > >> | |-src > > > >> | |-build.xml > > > >> | \-ivy.xml > > > >> |-Project B > > > >> | |-src > > > >> | |-build.xml > > > >> | \-ivy.xml > > > >> \-build.xml > > > >> > > > >> I'm unsure how to make B depending on A, and how to correctly > > > >> declare that dependency in the ivy.xml of B. Do I need to > > > >> define a custom resolver which is checking the other project? > > > >> Can somebody give me a quick rundown on what is the best way > > > >> to do this? Or should I structure my project differently? > > > >
Re: Quick rundown for using Ivy with multiple projects?
I think I figured it out in a half-way sane way. What I have now is a project looking like this: Project |-modules | |-ModuleA | | |-build.xml | | \-ivy.xml | \-ModuleB | |-build.xml | \-ivy.xml |-build.xml |-build-module.xml \-ivysettings.xml build.xml is basically only forwarding to each module, as you've shown me. build-module.xml is the common build.xml for every module which is imported by every module. The ivysettings.xml contains a custom resolver chain which checks the other modules for artifacts, before asking ibiblio for them: "modulesdir" in this case is a variable pointing to my "modules" directory. That means that if B depends on A, ivy will copy the build artifact from A to B when resolving the dependencies. So far this seems to work well enough, but obviously requires A to be build before B can be resolve it, which might or might not turn out to be a problem. Any comments? Did I miss or violate something? On Sat, 5 Dec 2020 17:12:42 +0100 Robert 'Bobby' Zenz wrote: > Thanks for the fast response, sorry for my slow response. > > This is what I needed on the top-level, but how do I reference > correctly project A in project B? Assuming that B depends on A? > > I guess I need to set up a resolver, but so far I have a hard time > understanding what exactly I need to do. > > > On Sat, 28 Nov 2020 21:36:47 +0530 > Jaikiran Pai wrote: > > > And of course, you then just do: > > > > ant clean deploy > > > > from the top level directory and that will then run those targets > > for all sub-projects. > > > > -Jaikiran > > > > On 28/11/20 9:34 pm, Jaikiran Pai wrote: > > > It's a bit too late here, so I'll keep this short for now. In one > > > of the projects that we have, which has a similar structure, we > > > use Ivy's buildlist task[1] to first create the ordered list of > > > projects that need to be built and then invoke on that ordered > > > list. So the top level build.xml will have something like ("clean" > > > and "deploy" are just example common targets in all these > > > projects): > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > [1] https://ant.apache.org/ivy/history/2.5.0/use/buildlist.html > > > > > > -Jaikiran > > > > > > On 28/11/20 9:27 pm, Robert 'Bobby' Zenz wrote: > > >> Can somebody give me a quick rundown regarding the usage of > > >> Ant+Icy when having multiple projects in the same repository. > > >> I'm a little bit confusing regarding how to define the > > >> dependency. > > >> > > >> Let's assume that Project AB has the two modules A and B: > > >> > > >> Parent AB > > >> |-Project A > > >> | |-src > > >> | |-build.xml > > >> | \-ivy.xml > > >> |-Project B > > >> | |-src > > >> | |-build.xml > > >> | \-ivy.xml > > >> \-build.xml > > >> > > >> I'm unsure how to make B depending on A, and how to correctly > > >> declare that dependency in the ivy.xml of B. Do I need to define > > >> a custom resolver which is checking the other project? Can > > >> somebody give me a quick rundown on what is the best way to do > > >> this? Or should I structure my project differently? >
Re: Quick rundown for using Ivy with multiple projects?
Thanks for the fast response, sorry for my slow response. This is what I needed on the top-level, but how do I reference correctly project A in project B? Assuming that B depends on A? I guess I need to set up a resolver, but so far I have a hard time understanding what exactly I need to do. On Sat, 28 Nov 2020 21:36:47 +0530 Jaikiran Pai wrote: > And of course, you then just do: > > ant clean deploy > > from the top level directory and that will then run those targets for > all sub-projects. > > -Jaikiran > > On 28/11/20 9:34 pm, Jaikiran Pai wrote: > > It's a bit too late here, so I'll keep this short for now. In one > > of the projects that we have, which has a similar structure, we use > > Ivy's buildlist task[1] to first create the ordered list of > > projects that need to be built and then invoke on that ordered > > list. So the top level build.xml will have something like ("clean" > > and "deploy" are just example common targets in all these projects): > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > [1] https://ant.apache.org/ivy/history/2.5.0/use/buildlist.html > > > > -Jaikiran > > > > On 28/11/20 9:27 pm, Robert 'Bobby' Zenz wrote: > >> Can somebody give me a quick rundown regarding the usage of Ant+Icy > >> when having multiple projects in the same repository. I'm a little > >> bit confusing regarding how to define the dependency. > >> > >> Let's assume that Project AB has the two modules A and B: > >> > >> Parent AB > >> |-Project A > >> | |-src > >> | |-build.xml > >> | \-ivy.xml > >> |-Project B > >> | |-src > >> | |-build.xml > >> | \-ivy.xml > >> \-build.xml > >> > >> I'm unsure how to make B depending on A, and how to correctly > >> declare that dependency in the ivy.xml of B. Do I need to define a > >> custom resolver which is checking the other project? Can somebody > >> give me a quick rundown on what is the best way to do this? Or > >> should I structure my project differently?
Quick rundown for using Ivy with multiple projects?
Can somebody give me a quick rundown regarding the usage of Ant+Icy when having multiple projects in the same repository. I'm a little bit confusing regarding how to define the dependency. Let's assume that Project AB has the two modules A and B: Parent AB |-Project A | |-src | |-build.xml | \-ivy.xml |-Project B | |-src | |-build.xml | \-ivy.xml \-build.xml I'm unsure how to make B depending on A, and how to correctly declare that dependency in the ivy.xml of B. Do I need to define a custom resolver which is checking the other project? Can somebody give me a quick rundown on what is the best way to do this? Or should I structure my project differently?