tomcat7-maven-plugin extraDependency 似乎没有被加载

标签 tomcat maven maven-tomcat-plugin

我一直在使用 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。

最佳答案

参数 extraDependencies 不适用于运行 mojo :-)。 请在此处查看参数:http://tomcat.apache.org/maven-plugin-2.0-SNAPSHOT/tomcat7-maven-plugin/run-mojo.html . 此参数用于 exec-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:-)

关于tomcat7-maven-plugin extraDependency 似乎没有被加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9928829/

相关文章:

apache - 在与 Apache 集成的 Tomcat 上提供静态文件的最佳实践

java - 我已经使用 docker 构建了命令并且输出成功并且我无法打开本地主机 7604

java - Spring MVC 中的瓷砖

java - 使用 maven-tomcat-plugin 启动多个 tomcat 实例

java - mvn tomcat7 :deploy takes too long to deploy?

java - 将war文件上传到tomcat时出现IllegalArgumentException

java - 错误取消部署 tomcat7.0.54 + jsf 2.2

tomcat - GWT 编译后未反射(reflect)更改

java - 如何像在Eclipse中一样在Intellij中的jetty上运行maven项目?

maven - 尽管Maven在路径上,但无法运行程序 “mvn”