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?
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?
Re: Quick rundown for using Ivy with multiple projects?
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?
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?