View
295
Download
2
Category
Tags:
Preview:
DESCRIPTION
Maven presentation I held for Iasi - JUG ( iasi-jug.ro )
Citation preview
Maven beyond “Hello world”
by Gabriel Dogaru
What / why / how?
● Corporate environment● Build large projects● 10+ modules
Some hate maven
Maven builds are an infinite cycle of despair that will slowly drag you into the deepest, darkest pits of hell (where Maven itself was forged).
http://kent.spillner.org/blog/work/2009/11/14/java-build-tools.html
“Sounds like my first wife.”
David Letterman
What do I need ?
● Stable builds● Reproducible builds● Reports● Releases ● Control over source code and dependencies● Build automation● Easy development cycle● What else ???
Do you know a ninja?
● Developers are smart ● Make builds fool proof● Have a build team
Control your sources
Install an maven repository manager
http://maven.apache.org/repository-management.html
Resolving dependencies
http://today.java.net/article/2010/01/04/maven-repository-managers-enterprise
Deploying dependencies
http://today.java.net/article/2010/01/04/maven-repository-managers-enterprise
~/.m2/settings.xml
Control dependencies
● Use a parent pom (super pom)● maven-enforcer-plugin
Parent pom example
http://maven.apache.org/ref/3.0.4/maven-model-builder/super-pom.html
Use dependency management
The Bigger, The Better
● Have many modules● Your IDE loves modules● Try to have separate modules if that makes
sense for you● Do you really need multi module projects?
http://monkeyisland.pl/2010/12/11/ide-and-patterns-for-huge-maven-project/
All for One
one project => one artifact.
Respect thy MAVEN
http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
Know your goals
Know who you are
● Define your own archetypes● Define your own packaging
http://maven.apache.org/guides/mini/guide-creating-archetypes.html
Groovy example
http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven
Your build is unique
http://www.sonatype.com/books/mcookbook/reference/ch02s03.html
http://ronalleva.com/groovy/maven/programming/2008/01/23/using-the-groovy-maven-plugin-to-do-magic.html
Leave your SNAPSHOT alone
Now we release
The release plugin
http://maven.apache.org/maven-release/maven-release-plugin/
Gets along well with CI
Make nice reports
http://maven.apache.org/plugins/maven-site-plugin/
http://mojo.codehaus.org/sonar-maven-plugin/
Remember
● Maven is not that bad, could be pretty nice● Customize maven to fit your need● but respect the tool● You are never done● Have a master near by that knows the tool● Have a look at Gradle....
Thank You
Recommended