Maven @ the POSS
Last June 23-24, the Philippine Open Source Summit (POSS) was held in Cebu and I got to do a technical session about Maven. For those who didn’t get to attend, here’s a short summary of what was presented and discussed in the session =)
- What is Maven?
- It is a software project management and comprehension tool that can manage a project’s build, reporting and documentation from a central piece of information.
- Before Maven was around you need to..
- Compile your project (dependencies, source classes)
- Package your project
- Test your project
- Document your project
- Deploy/publish your project
- Life with Maven.. Maven does it ALL!
- Building a project with Maven is demonstrated (from compiling your project up to deployment), showing the Maven build life cycle.
- A diagram of how Maven works

- Definition of Terms:
- Repository (remote and local) - where artifacts are contained
- Artifact - a jar, war, ear, zip, tar, etc. file
- POM (Project Object Model) - the central piece of information; xml configuration file where all info (build, reporting, resources, etc.) regarding the project is located
- Dependency - an artifact which is needed by your project in order to build or run it
- Build - steps for preparing your project for deployment (compile, test, package, deploy, etc.)
- The Power of Maven (reference: maven.apache.org/maven-features.html)
- Simple project setup that follows best practices
- Consistent usage across all projects means no ramp up time for new developers coming onto a project
- Superior dependency management
- Support for multi-module projects
- Extensible (you can create your own plugins!)
- Coherent site of project information
- Release management and distribution publication
- Related Tools:
- Apache Archiva – Build Artifact Repository Manager
- Apache Continuum – Continuous Integration Server
- Features of Archiva:
- can be used as proxy cache of artifacts
- manage repositories (deploy/upload artifacts, search, cleanup)
- provides reports (repository health)
- security (for your repositories)
- Features of Continuum:
- scheduled builds (m2, m1, ant and shell projects)
- build notification (mail, irc, IM clients)
- has support for build environments
- web UI for releasing a project
- security (across project groups)
- Resources:
- Maven website - maven.apache.org
- Books on Maven:
- Better Builds With Maven - repo.exist.com/dist/maestro/
- Maven: The Definitive Guide - www.sonatype.com/book/#
- Archiva website - archiva.apache.org
- Continuum website - continuum.apache.org
SPEAK / ADD YOUR COMMENT
Comments are moderated.

