Enter, Apache Maven:

Like many things in the software world, Maven seems to be a “big picture” technology, where one has to see the whole/big picture in order to truly understand the roles and significance of each of its components. I am now at the beginning of my journey to see & understand the whole shebang.
I’ve poured through the very-well-organized Maven documentation center, completing both their 5- and 30-minute tutorials and reading various other documents & articles. I am not attempting to build my first Maven project inside Eclipse, and have installed/configured the m2eclipse plug-in (from Sonatype) to help with this process. I’ve spent a good amount of time setting up my project’s pom.xml file, and now I’m bottlenecking-up with so many questions that I thought it would be high-time to come over here and ask for some nudges in the right direction.
- What’s the difference between a POM and a settings.xml file? What type of info gets configured in settings.xml that POMs omit? Besides the settings.xml files are there any other “standard” config files one should utilize?
- The Maven “Build Life Cycle” is a traditional sequence starting with validate, compile, test, … and ending with a deploy. How do these life cycle phases map (or don’t they) to goals? Does each phase have its own set of goals? Does one configure goals inside the POM? Where does one configure (add, remove, modify) life cycle phases?
- I’m choking on the concept of profiles altogether. I’ve read the basic introduction on them [here](http://maven.apache.org/guides/introduction/introduction-to-profiles.html) and am still not “getting” them. Can someone provide a context-specific example of when/how profiles would be useful?
I do apologize for the multiple “sub-questions” but figured it would be better to make this question a 1-stop-shop for basic Maven comprehension then plague the community with 20 micro questions. Thanks in advance for any clarification on these.
Sorry, but I can not answer your questions in detail, because it’s a lot of stuff. I also tried to learn Maven from the material you write about, but what gave me more inside was the book “Maven – The Definitive Guide” (http://shop.oreilly.com/product/9780596517335.do).
I also can only suggest to start small. Take just a simple Java project and get it running with a simple pom. Get bigger with modules later. Forget about the rest at the beginning. Try to understand (and feel) what Maven is and how it’s ticking. Later start trying to understand how the repositories are organized and how to bind your Maven build to an own repository like Artifactory. Try to learn it step by step with a real (not high priority or a private) project.
I work with Maven now for about two years and I am still not feeling like a pro. It’s a quite complex beast and very powerful. To master it, it takes some time I guess (or maybe I am not that smart ;-)).
Don’t know whether it helps you or not, but maybe it’s something. Sorry, but I can not write a new tutorial, here. 😉