Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Starting a new Maven project, what landmines to avoid?

Tags:

maven-2

I'm starting a new project. I intend to use Maven for the first time. From reading previous threads, the folks who like Maven have me convinced... but the folks who hate Maven seem to have stepped on landmines, and I'd love to have more details.

It seems like I'll be bound into following Maven's conventions. Is that an understatement? Is there something else?

*This will be a medium-size, medium complexity project; my ballpark would be 10k lines of code, growing to no more than 100k in it's lifetime. (I'd consider big to be >500k, and small to be <10k, FWIW).*

Yes, I'm using Maven. If the pitfall is "Maven", without any other details, you're wasting bandwidth on the reply.

like image 951
Dean J Avatar asked Nov 21 '09 15:11

Dean J


2 Answers

Indeed, following Maven philosophy and thus its conventions is a good idea as not following them will make things more complex.

But, because it seems hard to summarize the philosophy in one answer, because Maven has a bit of learning curve, and because Maven documentation is not always as good as it should be (this is maybe the biggest land mine), my advice would be actually to grab a book (or two) and to do things as in the book. If you don't know which one to pick, have a look at this page. In my opinion, Maven: The Definitive Guide and Better Builds with Maven are definitely good readings and are available on-line. But the later one Apache Maven 2: Effective Implementation co-authored by Brett Porter must be a good one too, I just didn't read it.

When you'll get started, don't hesitate to ask for advices, guidance, pointers on specific topics to take the right path. The maven user list is a good place for this. Asking questions here on StackOverflow is another option :) For example, how to organize a multi-module build might be one of the first topic. But without more details, it's impossible to answer right now.

like image 172
Pascal Thivent Avatar answered Oct 07 '22 13:10

Pascal Thivent


I would definitely recommend setting up a nexus repository at your location. This is free and will help integrate non maven repository jars, and cache them locally to improve performance of setting up a new environment.

like image 26
Nathan Feger Avatar answered Oct 07 '22 13:10

Nathan Feger