tomcat7-maven-plugin extraDependency, похоже, не загружается

Я использовал Tomcat7-Maven-Plugin. Я хочу запустить свое веб-приложение, которое подключается к базе данных PostgreSQL с помощью встроенного tomcat. Это связанная часть моего файла POM:

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.0-SNAPSHOT</version>
    <executions>
        <execution>
            <id>tomcat-run</id>
            <goals>
                <goal>exec-war-only</goal>
            </goals>
            <phase>package</phase>
            <configuration>
                <path>/</path>
                <attachArtifactClassifierType>war</attachArtifactClassifierType>
                <enableNaming>true</enableNaming>
                <extraDependencies>
                    <extraDependency>
                        <groupId>postgresql</groupId>
                        <artifactId>postgresql</artifactId>
                        <version>8.4-701.jdbc4</version>
                    </extraDependency>
                </extraDependencies>
            </configuration>
       </execution>
   </executions>

Executing tomcat7:run fails with

Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:236)
... 29 more

Сама зависимость верна (http://repo1.maven.org/maven2/postgresql/postgresql/8.4-701.jdbc4/).

Я использую Мавен 3.


person Zdenek F    schedule 29.03.2012    source источник


Ответы (1)


Параметр extraDependencies не для моджо запуска :-). Смотрите параметры здесь: http://tomcat.apache.org/maven-plugin-2.0-snapshot/tomcat7-maven-plugin/run-mojo.html. Этот параметр для Sef-War см. Цель http://tomcat.apache.org/maven-plugin-2.0-snapshot/executable-war-jar.html. Чтобы добавить свой драйвер JDBC просто сделать:

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.0-SNAPSHOT</version>
    <dependencies>
      <dependency>
       <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
       <version>8.4-701.jdbc4</version>
      </dependency>
    </dependencies>
</plugin>

HTH :-)

person Olivier Lamy    schedule 29.03.2012
comment
Очевидно, что самое простое решение — самое сложное, большое спасибо! :) - person Zdenek F; 29.03.2012
comment
Кстати, это, кажется, работает до выпуска 2.0 (включительно). В 2.1 и 2.2 нет возможности добавить такую ​​​​зависимость, она просто не работает. - person lisak; 19.02.2014
comment
@Sloin Могу я спросить вас, можете ли вы уточнить, что это просто не работает? Я мог бы начать свой mvn clean install tomcat7:run штраф на версии 2.2. - person Stephane; 01.12.2014