maven war应用程序设置contextroot

kri*_*itx 7 java linux tomcat maven

我正在使用下面的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>
Run Code Online (Sandbox Code Playgroud)

Nik*_*ide 9

有三种方法可以做到:

1.如果您没有使用Eclipse/MyEclipse将应用程序部署到应用程序服务器上 -

你需要使用maven-war插件,你可以在配置部分指定warName.

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <warName>customwarname</warName>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

然后,运行以下命令来更新eclipse设置.

   mvn eclipse:eclipse -Dwtpversion=2.0
Run Code Online (Sandbox Code Playgroud)

重新启动Eclipse,然后导航到项目属性,Properties-> Web以查看根上下文值的反映更改或导航到项目的Deployment Assembly以查看更改

注意,通过添加新插件,可以使用m2eclipse实现上述功能.

3.特定于应用程序服务器: 您应该更喜欢遵循服务器无关的方法,但如果需要这样做,那么您可以在服务器特定的配置文件中配置根上下文URL.你可以在这里找到详细的方法


Mat*_*att 2

您的应用程序不负责定义自己的上下文路径。这是容器的任务,在您的例子中是 Tomcat。Tomcat 提供了多种设置上下文路径的选项。您可以在上下文文件中定义上下文路径,或者在管理器应用程序中指定上下文路径。如果您使用 Jenkins 或其他 CI 工具,您也可以在那里指定上下文路径。

最好阅读有关您的特定 Tomcat 版本的选项。