Tout d'abord, la création du projet, avec Maven, c'est un jeu d'enfant

~$mvn archetype:create -DgroupId=com.blog -DartifactId=tree -DarchetypeArtifactId=maven-archetype-quickstart

Le résultat est le suivant :

tree
|-- pom.xml
`-- src
    |-- main
    |   `-- java
    |       `-- com
    |           `-- blog
    |               `-- App.java
    `-- test
        `-- java
            `-- com
                `-- blog
                    `-- AppTest.java

Évidemment le App et AppTest ne resteront pas longtemps :)

Editons le pom.xml pour ajouter les dépendances nécessaires :

  • Fixer comme compilateur des sources et des tests le JDK 5
  • commons-lang : pour equals/hashCode des objects persistants
  • spring pour la configuration des tests
  • hibernate et hibernate-annotations
  • ojdbc14 pour la base de tests
  • testng et dbunit pour les tests
  • commons-dbcp pour la datasource
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.blog</groupId>
        <artifactId>tree</artifactId>
        <packaging>jar</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>tree</name>
        <url>http://maven.apache.org</url>
        <build>
                <finalName>tree</finalName>
                <plugins>
                        <plugin>
                                <artifactId>maven-compiler-plugin</artifactId>
                                <configuration>
                                        <source>1.5</source>
                                        <target>1.5</target>
                                </configuration>
                        </plugin>
                </plugins>
        </build>
        <dependencies>
                <dependency>
                        <groupId>commons-lang</groupId>
                        <artifactId>commons-lang</artifactId>
                        <version>2.3</version>
                </dependency>
                <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring</artifactId>
                        <version>2.0.4</version>
                </dependency>
                <dependency>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate</artifactId>
                        <version>3.2.2.ga</version>
                </dependency>
                <dependency>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-annotations</artifactId>
                        <version>3.2.1.ga</version>
                </dependency>
                <dependency>
                        <groupId>com.oracle</groupId>
                        <artifactId>ojdbc14</artifactId>
                        <version>10.2.0.1.0</version>
                        <scope>test</scope>
                </dependency>
                <dependency>
                        <groupId>org.testng</groupId>
                        <artifactId>testng</artifactId>
                        <version>5.1</version>
                        <scope>test</scope>
                        <classifier>jdk15</classifier>
                </dependency>
                <dependency>
                        <groupId>org.dbunit</groupId>
                        <artifactId>dbunit</artifactId>
                        <version>2.2</version>
                        <scope>test</scope>
                </dependency>
            <dependency>
                        <groupId>commons-dbcp</groupId>
                        <artifactId>commons-dbcp</artifactId>
                        <version>1.2.2</version>
                        <scope>runtime</scope>
                </dependency>
        </dependencies>
</project>

Maintenant, le nécessaire pour Eclipse :

mvn eclipse:clean eclipse:eclipse