views:

384

answers:

3

Simply put, if you're using maven, should you treat the maven layout as the gold standard, or should you convert your layout to fit your tooling (WASD, myEclipse, RAD, etc.)?

Realizing that maven is configurable and you can override the defaults in the Super POM, I'm attempting to determine if I should change the layout to support specific tools that are in house, or attempt to make those tools recognize the maven layout. One thing to consider is the eventual integration of continuous build tools, as well as the different IDEs in play. MyEclipse is currently being used, but word is that they are not going to renew licenses in 6 months.

The first question I asked regarding this sort of thing was a bit too specific and one-sided.

+4  A: 

Maven is following the "Convention over Configuration" principle, which means that if you are following their conventions, then you do not need to redefine basic information, such as your project structure.

As far as I am concerned, I prefer to have the shortest pom.xml I can write, and I don't like to define the information like where to find the sources, the resources, and so on.

In addition to that, having the same structure for several projects is a evident benefit, especially if you have many applications to manage. It also helps new developers to understand the application if it follows some conventions...

romaintaz
I'm very interested in hearing any opinions to the contrary.
Mike Cornell
A: 

The default project structure works, so don't waste time debating and deciding on a different project structure and then configuring maven to use it.

dogbane
it does not work with certain IDEs, please see the first question I asked.
Mike Cornell
+1  A: 

Like all "best practices," take it for what it's worth. As you point out, IDEs may have a particular project structure that they like - since most of your development is actually done in the IDE, that's how developers will actually think about problems.

If you standardize your shop around a standard project structure, you can always define that common structure in a company wide parent POM file.

James Kingsbery