在maven pom文件中,我的项目包装类型是“jar”,如下所述。
<packaging>jar</packaging>
来自遗留代码的pom.xml文件中的我的cargo-maven2-plugin配置。我尝试运行Eclipse Kelpler,但由于插件配置没有提到cargo-maven2-plugin版本(我不知道这个配置的实际版本),Eclipse尝试获得最新的1.4.8。根据配置,Tomcat版本看起来像6.0.14,但容器ID是5x。整个配置似乎不对,我试着让它工作。有什么建议?包类型必须是jar,我无法改变它。
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<wait>${cargo.wait}</wait>
<container>
<containerId>tomcat5x</containerId>
<zipUrlInstaller>
<url>
http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.zip
</url>
<installDir>${installDir}</installDir>
</zipUrlInstaller>
</container>
<configuration>
<home>${project.build.directory}/tomcat5x/container</home>
<properties>
<cargo.hostname>${cargo.host}</cargo.hostname>
<cargo.servlet.port>${cargo.port}</cargo.servlet.port>
</properties>
<deployables>
<deployable>
<properties>
<context>ROOT</context>
</properties>
</deployable>
</deployables>
</configuration>
</configuration>
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<properties>
<cargo.host>localhost</cargo.host>
<cargo.port>25888</cargo.port>
<cargo.wait>false</cargo.wait>
<tomcat.version>6.0.14</tomcat.version>
</properties>
我将类型设置为“jar”以匹配项目。但是当我在Eclipse Kelper中运行maven build时,我收到了以下错误消息。如您所见,没有允许的类型“jar”列出。有人可以帮忙吗?
org.codehaus.cargo.container.ContainerException: Cannot create deployable. There's no registered deployable for the parameters (container [id = [default]], deployable type [jar]). Valid types for this deployable are:
- ear
- war
- rar
- bundle
- file
- sar
- ejb
答案 0 :(得分:0)
根据Cargo's Tomcat 5.x doc,只有war文件可以部署到tomcat,这就是它失败的原因。为什么不使用war来创建webapp?我不了解您的要求,但通常如果您在Tomcat上部署,则在war文件中有一个webapp。你需要做什么?你的项目中有servlet或jsp文件吗?您是否需要将其用作其他Web应用程序的库?
您可以创建一个Web应用程序,并将该项目生成的jar包含为依赖项。使用org.apache.marmotta:marmotta-archetype-webapp Maven原型创建项目并将遗留项目依赖项添加到pom中,它将是这样的:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test.war</groupId>
<artifactId>test-war</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>test-war Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>test-war</finalName>
</build>
<dependencies>
<dependency>
<groupId>legacyProjectGroupId</groupId>
<artifactId>legacyProjectArtifactId</artifactId>
<version>legacyProjectVersion</version>
</dependency>
</dependencies>
</project>