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