2011-04-14 67 views
0

我想升級現有的maven應用程序以使用tomcat 7.10及更高版本。如何指定core.cargo.version以在貨物中使用-maven2-plugin

在7.8上,我使用cargo-maven2-plugin來啓動tomcat容器並部署webapp,這工作正常。

在7.10及以上的失敗與錯誤:

[WARNING] [talledLocalContainer] 14/04/2011 12:21:43 PM org.apache.tomcat.util.digester.Digester startElement 
[WARNING] [talledLocalContainer] SEVERE: Begin event threw exception 
[WARNING] [talledLocalContainer] java.lang.ClassNotFoundException: org.apache.catalina.mbeans.ServerLifecycleListener 

這是由於這樣的事實,這個庫是從Tomcat 7.9中刪除,但我使用的仍然是指定這個庫貨物的版本它是server.xml配置。

的錯誤是固定的貨物1.1.0(http://jira.codehaus.org/browse/CARGO-923?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

我試圖找出如何強制Maven在貨物(或更具體貨物的Maven2-插件)的版本應該是使用。

我的pom.xml的相關部分看起來是這樣的:

<plugin> 
    <groupId>org.codehaus.cargo</groupId> 
    <artifactId>cargo-maven2-plugin</artifactId> 
    <version>1.0.6</version> 
    <configuration> 
     <container> 
      <containerId>tomcat7x</containerId> 
      <zipUrlInstaller> 
       <url>http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.12/bin/apache-tomcat-7.0.12.zip</url> 
       <installDir>${user.home}/java/cargo/</installDir> 
      </zipUrlInstaller> 
     </container> 
     <configuration> 
      <properties> 
       <cargo.logging>low</cargo.logging> 
       <cargo.servlet.port>8280</cargo.servlet.port> 
      </properties> 
     </configuration> 
    </configuration> 
    <executions> 
     <execution> 
      <phase>install</phase> 
      <goals> 
       <goal>start</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

的問題是,這將始終通過貨物maven2的插件版本號用貨1.6。如果我檢查mvnrepository,這是最新版本可用(並已損壞)。

如果我嘗試在配置 - >屬性部分指定core.cargo.version,它似乎沒有任何區別。

任何想法?

+0

在進一步的搜索,我可以「種」在這裏使用的指示得到這個工作(http://cargo.codehaus.org/Maven2+Plugin+Installation),但它似乎並不像一個偉大的方式來解決問題,因爲它使用夜間快照而不是發佈。 – 2011-04-14 02:51:16

+0

爲了進一步更新,我使用上述說明得到了這個配置,一旦值得注意的變化(對於其他問題相同的人)要確保在「plugin-> configuration」塊中放置一個「 true」塊它啓動後不會立即關閉tomcat。 – 2011-04-14 03:34:06

回答

1

我知道這張票很舊,但答案對於打開它的其他人有用。

您可以直接在pom.xml的插件定義中指定依賴關係,從而覆蓋插件依賴項的版本,如下例所示。 cargo-maven2-plugin的版本是1.4.10,我重寫了一些依賴項的版本,以代替1.4.11

<plugin> 
    <groupId>org.codehaus.cargo</groupId> 
    <artifactId>cargo-maven2-plugin</artifactId> 
    <version>1.4.10</version> 
    <configuration> 
     <container> 
      <containerId>tomcat7x</containerId> 
     </container> 
    </configuration> 
    <executions> 
     <execution> 
      <id>run</id> 
      <goals> 
       <goal>start</goal> 
      </goals> 
      <phase>pre-integration-test</phase> 
     </execution> 
     <execution> 
      <id>finish</id> 
      <goals> 
       <goal>stop</goal> 
      </goals> 
      <phase>post-integration-test</phase> 
     </execution> 
    </executions> 
    <dependencies> 
     <dependency> 
      <groupId>org.codehaus.cargo</groupId> 
      <artifactId>cargo-core-api-generic</artifactId> 
      <version>1.4.11</version> 
     </dependency> 
     <dependency> 
      <groupId>org.codehaus.cargo</groupId> 
      <artifactId>cargo-documentation</artifactId> 
      <version>1.4.11</version> 
     </dependency> 
     <dependency> 
      <groupId>org.codehaus.cargo</groupId> 
      <artifactId>cargo-daemon-client</artifactId> 
      <version>1.4.11</version> 
     </dependency> 
     <dependency> 
      <groupId>org.codehaus.cargo</groupId> 
      <artifactId>cargo-core-api-container</artifactId> 
      <type>test-jar</type> 
      <version>1.4.11</version> 
     </dependency> 
    </dependencies> 
</plugin>