Wielkimi krokami zbliża się do nas Maven 3. Jedną z nowości jest możliwość skorzystania z plików pom.xml w postaci skryptów Groovy/Ruby/Scala/Cokolwiek co zportujesz.
Nie wiem jak wy, ale ja jakimś wybitnym fanem XMLa nie jestem. Doceniam jego zalety w zakresie składowania i przesyłania danych, ale jako narzędzie do trzymania konfiguracji to on średnio się nadaje. Pliki pom.xml z biegiem czasu mają przykry zwyczaj rozrastania i komplikowania. Jeżeli dołożymy do tego możliwość korzystania z profili, różnych konfiguracji zależności w zależności od środowiska (inaczej lokalnie, inaczej na CI, a jeszcze inaczej na produkcji) to ogarnięcie tego galimatiasu znaczników zaczyna być czasochłonne. Nie jest trudne, ale zazwyczaj tracimy dużo czasu.
Dobra do rzeczy na podstawie tego wpisu wnioskuję, że nowy plik pom.xml będzie wyglądał na przykład tak:

Listing 1. Nowy pom.xml

project {
    modelVersion '4.0.0'
    parent {
        artifactId 'babble'
        groupId 'com.sonatype.training'
        version '1.0.6-SNAPSHOT'
    }
    artifactId 'babble-core'
    version '1.0.6-SNAPSHOT'
    name 'babble-core'
    url 'http://maven.apache.org'
    build {
        testResources {
            testResource {
                filtering 'true'
                directory 'src/test/resources'
            }
        }
    }
    dependencies {
        dependency {
            groupId 'junit'
            artifactId 'junit'
            version '4.7'
            scope 'test'
        }
    }
    profiles {
        profile {
            id 'development'
            properties {
                'log4j.level' 'DEBUG'
            }
        }
        profile {
            id 'production'
            properties {
                'log4j.level' 'WARN'
            }
        }
    }

    properties {
        'log4j.level' 'info'
    }
}

No i git.