incubator-easyant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Louis Boudart <>
Subject Re: metabuild on any module
Date Fri, 10 Jun 2011 09:51:48 GMT
2011/6/7 Sandu Turcan <>

> > Looks good but it would probably be better to merge this feature in
> > MetaBuildExecutor. I guess current implementation delegates to the
> > ivy:buildlist task to compute an ordered list of submodules, this should
> be
> > done outside of the executor making it much more reusable and extandable.
> >
> > Could we use a property instead of "target prefix" to specify the
> execution
> > scope ("all","needed","dependencies","dependents") something like easyant
> > -Dmeta.mode=needed clean package  ?
> >
> > What do you think ?
> Funny you should mention that, the code has changed since then, and it
> now supports these exact prefixes.
> You can type
> easyant needed:clean+publish-local test   # run 'clean' and
> 'publish-local' on needed and 'test' on the current module
> or easyant dependents:publish-local
> etc., all 4 of them.
Does this mean you agreed that we should merge the feature in
MetaBuildExecutor itself ?:p

> It allows you to have a target in your build dependent on a "prefixed"
> target and it will work, the executor will handle both cases. This
> wouldn't work with -Dmeta.mode, because it assumes picking one mode
> over the other, no interoperability.
> It's also a shorter and more intuitive syntax, I think.
It seems really powerful feature and implementation, but in the same times
it can be "dangerous" in terms of build maintenance as <ivy:buildlist> will
evaluate the build order of submodules. Debuging a project having lots of
submodules and cross referencing metatarget can be like debuging a spaghetti
code application. Any thoughts on this ?
I'm not tellilng the idea is bad or we shouldn't implement it, i just
chalenge your original idea.

> > Then emma plugin and my property will be accessible in my submodule. I
> can
> > give you more detail on this if you want, i'll update the documentation
> > soon.
> > Combining meta-build feature with module-inheritance could be really
> > powerful.
> localconfig is mostly to configure easyant itself. I use it to specify
> where my eclipse workspace and intellij config is (project generation
> uses that). Also depending on the project I can choose a different
> location of ivysettings.xml.
> In other words we're talking about machine/developer specific settings
> that don't belong in the source repository.
> You don't ever have to use a different command for the build tool, the
> configuration gets picked up based on where you are.
Oki interesting.

> > I also noticed that you've created a plugin to generate IDE's
> configuration
> > files. I haven't tested it yet but looks like promosing.
> > Is eclipse with IvyDE supported ?
> No, it generates regular projects for eclipse and intellij, I didn't
> want to require additional plugins in either.
> It does a slightly better job in intellij because it takes advantage
> of native support for test sources, runtime dependencies, and
> libraries.
But people would still be able to extends it as you provide an interface,
isn't it?

> It needs EASYANT-24 to work though, so I can only use it with my own
> tool for now.
Right, so then we definitively need to have a look at this issue.

Jean Louis Boudart
Independent consultant
Project Lead

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message