Maven ne définit pas correctement le chemin de classe pour les dépendances

Nom du système d'exploitation: linux version: "2.6.32-27-generic" arch: "i386" de la Famille: "unix"

Apache Maven 2.2.1 (r801777; 2009-08-06 12:16:01-0700)

Version de Java: 1.6.0_20

Je suis en train d'utiliser le mysql de dépendance avec maven dans ubuntu. Si je déplace le "mysql-connector-java-5.1.14.jar" fichier maven téléchargé dans ma $JAVA_HOME/jre/lib/ext/dossier, tout va bien, quand je lance le pot.

Je pense que je devrais être en mesure d'indiquer seulement la dépendance dans le pom.xml fichier et maven doit prendre soin de fixer le chemin de la dépendance des pots automatiquement. Est-ce incorrect?

Mon pom.xml fichier ressemble à ceci:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.ion.common</groupId>
  <artifactId>TestPreparation</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>TestPrep</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>

        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>com.ion.common.App</mainClass>
            </manifest>
          </archive>
        </configuration>

      </plugin>
    </plugins>
  </build>

  <dependencies>

    <!-- JUnit testing dependency -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!-- MySQL database driver -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.14</version>
      <scope>compile</scope>
    </dependency>

  </dependencies>
</project>

La commande "mvn package" construit sans aucun problème, et je peux le faire tourner, mais lorsque l'application tente d'accéder à la base de données, cette erreur est présenté:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at com.ion.common.Functions.databases(Functions.java:107)
        at com.ion.common.App.main(App.java:31)

La ligne, c'est un échec:

Class.forName("com.mysql.jdbc.Driver");

Quelqu'un peut me dire ce que je fais mal ou comment résoudre le problème?

source d'informationauteur Matthew