我正在使用下面的maven配置构建一个war应用程序文件,但是当我在tomcat中启动应用程序时,Context Root被设置为" /CommerceApi-0.0.1-SNAPSHOT /"
我希望将其设置为" / api",
任何想法?,下面是pom.xml
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>CommerceApi</groupId>
<artifactId>CommerceApi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>CommerceApiCommon</groupId>
<artifactId>CommerceApiCommon</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
答案 0 :(得分:9)
有三种方法可以做到:
<强> 1。如果您没有使用Eclipse / MyEclipse将应用程序部署到应用程序服务器上 -
您需要使用maven-war插件,您可以在配置部分指定warName。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<warName>customwarname</warName>
</configuration>
</plugin>
<强> 2。如果您使用Eclipse / MyEclipse将应用程序部署到应用程序服务器上 -
如果您正在使用eclipse并使用eclipse部署war,那么您可以使用以下maven配置。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.10</version>
<configuration>
<wtpversion>2.0</wtpversion>
<wtpContextName>customwarname</wtpContextName>
</configuration>
</plugin>
然后,运行以下命令来更新eclipse设置。
mvn eclipse:eclipse -Dwtpversion=2.0
重新启动Eclipse,然后导航到项目属性,Properties-&gt; Web以查看根上下文值中反映的更改或导航到项目的Deployment Assembly以查看更改
请注意,通过添加新插件,可以使用m2eclipse实现上述目标。
第3。特定于应用程序服务器: 您应该更喜欢遵循服务器无关的方法,但如果需要这样做,那么您可以在服务器特定的配置文件中配置根上下文URL。您可以找到详细的方法here
答案 1 :(得分:2)
您的应用程序不负责定义自己的上下文路径。容器的任务,在你的情况下是Tomcat。 Tomcat提供了几种如何设置上下文路径的选项。您可以在上下文文件中定义它的上下文路径,也可以在管理器应用程序中指定上下文路径。如果您使用Jenkins或其他CI工具,那么您也可以在那里指定上下文路径。
最好您阅读有关特定Tomcat版本的选项。
答案 2 :(得分:0)
有几种选择。有些内容在Define Servlet Context in WAR-File
中有所描述使用tomcat你也可以定义context.xml路径:http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#containerConfigXML并在那里配置它:https://tomcat.apache.org/tomcat-7.0-doc/config/context.html
最快的方式可能是改变最终名称(参见其他stackoverflow问题)。