my dog learned polymorphism
The moose likes Ant, Maven and Other Build Tools and the fly likes Cheating with Maven? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » Ant, Maven and Other Build Tools
Bookmark "Cheating with Maven?" Watch "Cheating with Maven?" New topic

Cheating with Maven?

Toby Eggitt
Ranch Hand

Joined: Dec 08, 2004
Posts: 49
Hi all, I have a problem with dependencies for Spring 3.1. I know that if I "just used Maven" it would all be easy. But that leaves two problems for me, first, I want to know what is happening, second, I don't know how to use Maven anyway, and don't really want to (can't really afford to) invest the time to learn right now (though, yes, it's on my list).

So, here's what I'm wondering. Is there a simple "recipe" that would allow me to kick off Maven (I'd have to download it first) and give it the pom elements that Spring provide for their stuff, and let Maven do the necessary downloads. Then, after it's done the downloads, I'd want to extract the stuff it had fetched, and stick the jars on my classpath in the usual (i.e. manual) way.

Is that possible? How would I do it?

Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 17417

It took me a while to warm up to Maven as well, but it was worth the effort. You really should move Maven to the top of your "must-learn" list, since it makes it a lot easier to work with other things.

The hard part is creating the POM. Here's some stuff for Spring that includes Spring components for use with JPA and the web framework. Remove any items that don't amuse you.

Also, of course, you need to define the spring version. Like so:

This properties element is at the bottom of my POM.

Yes, Maven is "magic", and I never liked that, but it's in large part because Maven is designed to be able to do lots of things while requiring minimal configuration. Installing Maven is simple. Just download the zipfile, explode it, set MAVEN_HOME to point to the root of the exploded ZIP, and add $MAVEN_HOME/bin (or %MAVEN_HOME%\bin) to your PATH.

Some useful Maven goals that a minimal POM can invoke:

mvn clean - Remove all constructed objects
mvn compile - compile only
mvn clean compile war - clean, then compile and build a WAR from the results (web project). The "war" goal doesn't compile, only archive, so we must explicitly compile.
mvn test - does a compile, runs unit tests, and builds test reports
mvn package - construct a target artefact. Implies compile and test
mvn install - does a "mvn package, then installs the artefact in your Maven archive, where it can be used as a dependency by other POMs

There are many other goals, including some specialized ones that invoke dependencies on Maven plugins and massive functions like "mvn site", which not only does a "mvn package", it uploads the package to a central Maven repository, builds constructs an entire website including javadocs and test reports and uploads it, and so forth. You can also limit what tests (if any) are run for goals that request testing.

An IDE is no substitute for an Intelligent Developer.
Toby Eggitt
Ranch Hand

Joined: Dec 08, 2004
Posts: 49
Thanks Tim, I'm not totally clear how to proceed with this, but I figure I'll stick with 2.5.5, which is behaving for me, and wait till I have a chance to get to grips with Maven before I bother to upgrade.

Really appreciate your effort, thanks!

I agree. Here's the link:
subject: Cheating with Maven?
It's not a secret anymore!