I am fairly new to Maven, so maybe there are things that I simply
don't know the correct way of doing things. However, we did "Mavenize"
one project, and we simply found that it wasn't worth the effort.

We had a strong Ant build process and things were working very well
there. The idea to Mavenize came from above. We rearranged our
directory structure, but then realized that we were doing a few things
that weren't quite standard. Getting these to work took a lot of time
and effort. It involved modifying some code and changing the way we
deployed. We had times when we were sure everything was okay with our
Maven build, but then testing found holes that we didn't realize were
there.

After three weeks, we finally got the Maven build working.In the end,
we have angry developers, a steep learning curve to learn how to work
on a project that developers knew in and out, and a build process that
isn't much better than what we had.

As a result, we have decided not to Mavenize all of our projects. All
new projects will use Maven. Some of the simpler projects may be
mavenized, but we'll carefully evaluate them. That doesn't mean we
didn't learn some neat tricks in the process.

The biggest concerns having project "A" build a jarfile that project
"B" requires. In the pre-Maven days, that meant checking in that built
JAR into Subversion, then using svn:export to pick up that jar from
the other project. Checking in JARs several times a day into our
Subversion repository proved difficult in both process  and room. Now
that we have a Maven repository, we now use the deploy:deploy-file
mojo to deploy that Jar to our Maven repository. If the receiving
project is a Maven project, we can now pick it up using the standard
dependencies methods in the pom.xml, and we are converting many of
these dependent projects into Maven because here's a real advantage
Maven does have for us.

And for the few dependent projects that we cannot easily Mavenize, I
now use Ant's <get> task to download the jars from the Maven
repository. It isn't as clean as the way Maven does it, but it has
proven easier to do than to Mavenize these difficult projects.

So Mavenizing old projects isn't just a blanket thing to do. You have
to evaluate what you have now, and what you expect to gain with Maven.
Some projects are pretty straight forward, but if you have an older
project with a complex build process, and a build process that fairly
rigorous, moving to Maven simply doesn't buy you all that much.

On Sun, Feb 22, 2009 at 9:04 AM, Steve Cohen <sco...@javactivity.org> wrote:
> I am considering"Mavenizing" a pre-existing project.
>
> This project consists of a Web Application (WAR file) and a server side JAR
> module, built from several Eclipse projects, some of which are dependencies
> of both modules, as well as many third party jars, both open source (many of
> which themselves use Maven, of course) and proprietary.
>
> Current build process is very rudimentary.  The Eclipse projects do not
> currently use Maven naming standards for directories.  To do builds, the
> simple Eclipse Export menu options are currently used.  Deployment is manual
> and there are some annoying manual post-export tasks that must be run.
>  Version control uses subversion, including a big ugly "project" containing
> static copies of binary jars.  These are my main reasons for considering
> conversion to Maven.
>
> Questions:
>
> 1. Are there articles around detailing "war stories" about making the kind
> of move I am contemplating?  I would like to read such before I get started.
>  I have just purchased Maven: The Definitive Guide, and while the
> information there is very good, it tends to assume a start from scratch.  I
> would like to keep the history in the Subversion respository if possible.
>
> 2. Would I be better served by renaming directories at the start to Maven
> "Convention over Configuration" standards or by overrriding the defaults all
> the way down the line?
>
> 3. Would I be better off building a local network repository containing both
> the open source and proprietary code needed or would it be better to create
> a local repository only for the proprietary stuff and get the open source
> stuff from a remote repository.
>
> Thanks.
>
> Steve Cohen
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
>
>



-- 
--
David Weintraub
qazw...@gmail.com

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

Reply via email to