我一直在使用 tomcat7-maven-plugin。我想运行我的 webapp,它使用嵌入式 tomcat 连接到 PostgreSQL 数据库。这是我的 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>
执行 tomcat7:run 失败
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/)。
我使用 Maven 3。