incubator-easyant-dev mailing list archives

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

> > 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.

>
>
Cheers,
-- 
Jean Louis Boudart
Independent consultant
Project Lead http://www.easyant.org

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