假设以下pom.xml
maven会构建一个client.war
文件,当部署到Tomcat时,该文件将具有URL www.server.com:8080/client/
需要更改什么才能在服务器根目录www.server.com:8080/
上找到应用程序?
<project> <modelVersion>4.0.0</modelVersion> <groupId>...</groupId> <artifactId>client</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>...</name> <url>http://maven.apache.org</url> <build> <resources> <resource> <directory>target/generated-resources</directory> </resource> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> ... </plugins> <finalName>client</finalName> </build> ... </project>
答案 0 :(得分:8)
如果你愿意,我相信你可以离开名为client.war的战争。然后配置tomcat6 plugin,设置如下路径:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0-beta-1</version>
<!-- put the configuration in an execution if you want to... -->
<configuration>
<path>/</path>
<warFile>${project.build.directory}/client.war</warFile>
<!-- other config options here -->
</configuration>
</plugin>
我没有使用tomcat7版本的插件,但我猜它是类似的。
答案 1 :(得分:2)
由于您正在使用eclipse,tomcat和maven的组合,我将猜测m2e-wtp插件在这里使用。有一个FAQ that addresses this。这也显示了如何以特定于maven的方式更改您的上下文根(使用war插件来指定war的finalName),这会导致正确命名的war文件(例如其他答案中提到的ROOT.war。) p>
答案 2 :(得分:0)
Maven war插件(默认情况下在super-pom上定义)只会生成war文件。您可以在Tomcat上设置应用程序。如果要将“部署到容器”添加到maven构建中,请使用Tomcat Maven Plugin或Cargo Maven Plugin。
实际上,你想要的与Maven无关。将你的战争名称设置为ROOT.war应该这样做(在你的构建部分<finalName>ROOT</finalName>
),但如果你想将context.xml
添加到war文件中,你可以做类似的事情(假设{{1是由maven定义的webapp文件夹:
src/main/webapp
`