All,

So I have maven fully functional.  I sent an email regarding this but
being that it wasn't on this thread so it probably went un-noticed.  So
below is basically a copy of that.

If you want to get an idea of what maven would look like for CS, what
I've done is on the "maven"
branch at https://github.com/ibuildthecloud/incubator-cloudstack.git

I had to setup a custom repo to put all the non-oss libraries that don't
exist in the central maven repo. To build just do "mvn -s
m2-settings.xml"

That settings file will create a local repo (not use ~/.m2/repository)
because I was testing that all dependencies are coming from where I
expected and not polluted by other maven stuff I do.

Its a multi module project so you can do things like "mvn -s m2-settings
-am -pl server" to just build the server portion (or core, or one of the
tons of plugins).  I also tested that the build works with maven 2 and
maven 3
and that the Eclipse M2E plugin works with it too.

I would love it if a maven god could review what I've done.  If we're
all good with maven I'll gladly take this to full completion and start
submitting patches.  Post 4.0 we can always improve (and I'm sure we
will), but I feel I know what's the bare minimum need to get this out
the door and I can do that (plus whatever nice to haves I can squeek
in).

Regarding the dev environment setup.  We can do this with whatever
little amount of impact we want.  Once you have the maven pom's you just
install Eclipse M2E (thats an eclipse foundation project) and then say
"Import Existing Maven Projects" and then magic ensues.  The M2E plugin
works pretty darn well.  It also has the great benefit that you can stop
checking in .classpath and .project files in the your version control
because the pom.xml has all the metadata Eclipse M2E needs to create a
project.   So my preferred approach would be to checkin the pom's and
then delete the .classpath and .project files from git and have
developers re-import their projects into eclipse.  If people don't like
that I can use some magic with the mvn depenendency:copy-dependencies to
recreate the same structure as whats in deps today to make the eclipse
projects still work.  But I would grudgingly do that work as I would
rather we just move forward with a standard maven layout.  Gotta learn
sometime and I don't think its all that difficult.

Regarding the ant tasks, I want to keep backwards compatibilty so that
the main ant tasks still work but just internally call maven and not
javac/jar directly.

So I vote we just let me do this and I'll get 'er done.

Darren



> -------- Original Message --------
> Subject: RE: [DISCUSS] Please choose: The build system to use for 4.0
> From: Ewan Mellor <ewan.mel...@eu.citrix.com>
> Date: Fri, August 17, 2012 2:22 pm
> To: "cloudstack-dev@incubator.apache.org"
> <cloudstack-dev@incubator.apache.org>
> 
> 
> Well, all our packages are going to be public, of course.  That shouldn't be 
> a problem!
> 
> Ewan.
> 
> > -----Original Message-----
> > From: Marcus Sorensen [mailto:shadow...@gmail.com]
> > Sent: 17 August 2012 14:19
> > To: cloudstack-dev@incubator.apache.org
> > Subject: Re: [DISCUSS] Please choose: The build system to use for 4.0
> > 
> > I'm totally fine with a switch, my only concern was around when it's done.
> > Aside from just implementing the build bits in the git repo (sounds like 
> > there
> > are resources for this), I picture there being a bit of work on every
> > developer's part to switch their dev environments. This might be as simple 
> > as
> > a few package installs, but on at least one occasion when I was building
> > something via Maven I had to spend the better part of an afternoon going
> > back and forth with the network/systems guys because Maven needed to
> > download some components and the applicable systems by default are
> > internal-access only. It's things like that where I worry about switching 
> > build
> > systems when people are under a crunch to complete 4.0.
> > 
> > On Fri, Aug 17, 2012 at 2:04 PM, Ewan Mellor <ewan.mel...@eu.citrix.com>
> > wrote:
> > > OK, so we've got offers of effort on Maven from Darren, Hugo, plus review
> > help from Olivier and Alex.  Maven gets +1 from me, Alex, and Brett too.
> > >
> > > On the Ant side we've got +1 from Chip ("based on timeline"), Wido,
> > Marcus, and Mice.  David has his deps-ctrl branch, but no-one has offered to
> > finish the job.
> > >
> > > We have consensus that the release is going to slip by at least 3 weeks 
> > > (2 at
> > the front and one at the end), which gives us four weeks total to get the
> > build system done and debugged (i.e. between now and final release
> > candidate on Sep 14).
> > >
> > > With that extra time, does that change anyone's opinion?  It would be nice
> > to get consensus on this issue, otherwise we're going to have to put it to a
> > vote.
> > >
> > > Thanks,
> > >
> > > Ewan.
> > >
> > >
> > >> -----Original Message-----
> > >> From: akaras...@gmail.com [mailto:akaras...@gmail.com] On Behalf Of
> > >> Alex Karasulu
> > >> Sent: 17 August 2012 03:11
> > >> To: cloudstack-dev@incubator.apache.org
> > >> Subject: Re: [DISCUSS] Please choose: The build system to use for 4.0
> > >>
> > >> On Fri, Aug 17, 2012 at 1:00 PM, Olivier Lamy <ol...@apache.org> wrote:
> > >>
> > >> > +1 for Apache Maven
> > >>
> > >>
> > >> Ditto but this can happen any time and in parallel. I understand and
> > >> appreciate the time limitations for the 4.0 release.
> > >>
> > >>
> > >> > (but I agree my POV can be considered non objective :-)
> > >> > ) or at least our own Apache dogfood.
> > >> > I agree this can late for 4.0 (why not for 4.1) Btw if someone push
> > >> > poc on a branch I can help to review as I have a bit of experience
> > >> > on (and Brett too :-) ).
> > >> >
> > >>
> > >> I'm not a Maven demigod like Brett, but I can help out here as well.
> > >>
> > >>
> > >> >
> > >> > Olivier
> > >> > Le 16 août 2012 23:12, "David Nalley" <da...@gnsa.us> a écrit :
> > >> >
> > >> > > Hi folks,
> > >> > >
> > >> > > I am particularly limiting the scope of this to what we do for
> > >> > > 4.0, since that is the pressing timeline.
> > >> > >
> > >> > > Here are the current options:
> > >> > >
> > >> > > * Continue using ant, and have the hacky stuff I wrote as ant
> > >> > > targets deal with dependency resolution. (see the differences in
> > >> > > the deps-ctrl
> > >> > > branch)
> > >> > >
> > >> > > * Use Gradle (see the gradle branch)
> > >> > >
> > >> > > * Use Maven (I haven't seen any of this, but Darren reports that
> > >> > > he has this building - Darren: can we see this somewhere publicly
> > >> > > perhaps?)
> > >> > >
> > >> > > While I'd like to have us choose the system that we are going to
> > >> > > use for all time (and despite some reservations, I think Maven is
> > >> > > likely my personal choice for what we should move to long term),
> > >> > > I am also concerned that we don't let the perfect become the enemy
> > of the good.
> > >> > > So given all of that - what should our choice be?
> > >> > >
> > >> > > --David
> > >> > >
> > >> >
> > >>
> > >>
> > >>
> > >> --
> > >> Best Regards,
> > >> -- Alex

Reply via email to