We build an LMS application with over 70 modules.

We make each project a separate Eclipse project with its own version,

Maven builds a number of artifacts for us.
- Libraries of common code that are used as dependencies in other projects
- War files that are run under Tomcat - WebServices and Webapps
- Standalone executable batch jobs
- Composite jar files that include third party jars grouped together for convenience. For example, our projects have a single dependency that includes Spring, MySQL, Hibernate and the Tomcat libraries that we use. We have about 8 of these.


All projects refer to the same parent pom.

This works well for us but there are  other schemes that work as well.

It makes it easy for multiple developers to work on an application since each module is independent.

We use a Nexus repository. Very important to have your own repo when working with Maven.

We use Subversion as our SCM.

We use the Springframework Eclipse/STS which comes with everything that you need to build Java apps with Maven. We started with ordinary Eclipse but got too overwhelmed by the amount of time wasted everytime we upgraded. STS comes with all the right versions of plug-ins that you need already included.


We do not use CI.

I hope that this helps.
If you want to browse through some random thoughts on things that we think that we know, visit http://blog.artifact-software.com/tech

Ron

On 20/04/2012 4:45 PM, Wayne Fay wrote:
But what decides that foo_webapp and cmd_line belong here, just their
dependency on lib_a and the desire to share pom config&  version them
together?  For example, should a few new applications, also dependent on
lib_a should live here?  When does it end?   Or perhaps if "lib_a" is
expected to be widely reusable it should live outside the
multi-module...or????
This isn't really a Maven question. Instead you're asking about
general Software Engineering and Architecture, and you happen to be
using Maven as your build tool. If you were using Ant or make, would
your questions be any different?

I'm not aware of any guidelines published by Maven that will help you
decide when to make something a submodule of a project vs its own
top-level project. It is an interesting topic so maybe this thread
will prove useful to you and some practical conventions will shake out
if this turns into a real discussion topic.

I'd just keep things as modules and keep versions all locked together
until it no longer makes sense to do so, then split specific modules
off into their own top level project.

Wayne

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org




--
Ron Wheeler
President
Artifact Software Inc
email: rwhee...@artifact-software.com
skype: ronaldmwheeler
phone: 866-970-2435, ext 102


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to