Maven provides the means to declare the external dependencies. Say for
example, you depend upon springframework-2.0.3 and tapestry-4.0.3 to
compile and run a particular jar, and this jar is used in a war file,
one would only have to define this dependency once, and it would be
inherited by all that use that jar file. This helps you with the DRY
(Don't repeat yourself) principal in java development.
I found that by using maven, my build files are much easier to maintain
and I am more productive.
Other important points:
Maven represents a structure to adhere here. While you can put things
anywhere you want them to, by adhering to the default directory
structures, you can have maven automatically work.
New developers do not have to learn your custom building scripts. If
developers know one maven project, they know their way around others.
Some open source projects that I love and respect use maven. Tapestry
is one of many that are using maven.
Having been the build architect (in the past) of a code base with 30
active full-time developers, I know that you can really hang yourself
with ant. I can't tell you how many times some developer would be
compiling against some old release of code, and not the code that was
being compiled and released at the time. Maven really closes the gaps
in that regard.
Phillip
David E Jones wrote:
As a warning: I'm not a huge fan of Maven for a project like OFBiz.
That said, what do you see as the benefits to OFBiz from using Maven?
-David
On Nov 13, 2006, at 9:49 AM, Phillip Rhodes wrote:
I'm a newbie for ofbiz, but I am a ant expert, and I am migrating my
applications to use maven2.
Maven2 is an excellent tool in regard to managing/declaring
dependencies on both external and internal dependency. Reports,
building, etc..
If we aren't using maven, can I volunteer to lead a team to migrate
our build system to maven?
Phillip
Anders Hessellund wrote:
Hi,
how are dependencies among ofbiz components expressed? Is there a
single
place to declare dependencies on other components, or can the
dependency-related code/xml be scattered around in the internals of a
component?
-- Anders