2012-03-29 115 views
5

我一直在使用tomcat7-maven-plugin。我想运行我的webapp,通过使用嵌入式tomcat连接到PostgreSQL数据库。这是我的POM文件的相关部分: tomcat7-maven-plugin extraDependency似乎没有加载

<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:运行失败,

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

回答

13

参数extraDependencies不是运行魔力:-)。 在这里查看参数: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 :-)

+0

显然,简单的方法是可以看到最难的一个,非常感谢! :) – 2012-03-29 17:52:17

+0

顺便说一句,这似乎是工作,直到2.0版本(含)。在2.1和2.2中,没有办法像这样添加依赖关系,它只是不起作用。 – lisak 2014-02-19 13:38:23

+0

@Sloin我可以问你,你是否可以详细说明你的问题 - 只是不工作?我可以在2.2版本上启动我的'mvn clean install tomcat7:run'。 – Stephane 2014-12-01 14:21:43