I've been using Maven as much as possible for all sorts of projects (Java, Scala, Flex, etc..) and it is by far the external build tool that offers greater IDE support. Both Netbeans and IDEA work great with Maven and I believe I read somewhere that Eclipe's support will be a lot better in future versions.

We now have ~ 60 MB of third party jars in source control and if we keep the code as it is it will grow larger, especially if people start making contributions to integrate Wave with other projects (support for other app servers, new persistence alternatives, etc...)

Also, with the move to SVN people will be able to checkout just the module they need and can depend on prebuilt versions for everything else, this of course if we setup a simple maven repo.

Were the current dist jars discussed properly ? Can't we use this same layout as a starting point ?

I'm well aware that this is something that needs to be discussed but I'm ok with throwing my work away as long as it served its purpose which is to get this discussion going.


On 26-04-2011 22:51, Michael MacFadden wrote:
Nelson,

I am all for this.  I am very experienced with Maven and the proper ways to set 
up multi module projects including dependency management, etc.  I think your 
assessment of the situation is correct.  We would ultimately need a code free 
to get this done.

However, before you go to far, I would try to get a real discussion going on if 
this is something the team wants to do.  If so we need to discuss what the 
right modules are, what artifact and group ids we would want, etc.  I would 
hate to see you set up a lot of poms.xml that don't line up with how we would 
ultimately do things.

As a side note, if we did want to go to maven, now would be the right time.  
Everything else has to be migrated anyway, might as well take the hit now.  
However, I would recommend that we get the current source migrated over first.

~Michael


On Apr 26, 2011, at 10:12 AM, Nelson Silva wrote:

Hi all,

There have been several discussions on adding maven as a build tool.

I've decided to start working on this by adding a tools/maven subdirectory with 
a multimodule project layout.
I pushed my ongoing work to a branch in my GitHub clone :

https://github.com/nelsonsilva/wave-protocol/tree/maven/tools/maven

While a complete port to maven as the main build tool would required a code 
freeze and a healthy discussion of code reorganization into proper modules we 
should be able to use a simple includes/excludes approach for now and in the 
end, if everyone is ok with it, we could easily make the port happen.

I would like to get some help with this from everyone who's interested. There 
are lots of plugins and lots of ways to acomplish things in maven so this 
should get the discussion started.

I chose to go with GitHub so everyone can fork it and send me pull requests. If 
you'd rather go with the issue/patchset approach I'll open the issue but the 
idea here was to have several people contribute and not a single patch + review 
process.

Quickstart:

cd tools/maven
./install_deps.sh # This will install a couple of dependencies that were either 
patched or were not found in existing maven repos
mvn install
cd server
ln -s ../../../war
mvn exec:java # This should start the server, although you'll have to symlink 
the war directory for now

TO DO:

- Use profiles for dev/prod
- Remove as many ant tasks as possible and use pure maven plugins
- Use the assembly plugin to package the server with the webclient
- Setup the surefire tests for each module
- Rethink the modules, we should have pure api modules and the several impl 
modules for persistence, websockets, auth, etc ...
- etc....

Looking forward to getting this going...

Regards,

    Nelson Silva

Reply via email to