2016-07-29 32 views
3

我使用下面的Maven配置构建一个战争的应用程序文件,但是当我启动Tomcat中的应用程序上下文根被设置为“/CommerceApi-0.0.1-SNAPSHOT/”Maven的战争应用程序中设置上下文根

我想这是设置为“/ 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> 

回答

1

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

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

+0

为什么tomcat服务器被称为容器?这与人们提到的集装箱化(码头等)相似吗? #NewbieHere – user3705478

4

有三种方法可以做到这一点:

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

你需要让使用Maven,战争插件,你可以在配置部分指定warName。

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>3.0.0</version> 
    <configuration> 
     <warName>customwarname</warName> 
    </configuration> 
</plugin> 

2.如果您使用的是Eclipse/MyEclipse的将应用程序部署到应用服务器 -

如果您正在使用Eclipse和使用eclipse,那么你可以使用以下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然后导航到项目属性,属性 - >网络,以查看在根上下文值的反射变化或导航到部署总成项目以查看更改

注意,上述能通过添加一个新的插件使用m2eclipse来实现。

3.应用服务器的具体: 你应该更喜欢跟从服务器无关的方法,但如果需要做到这一点,那么你可以在服务器的具体配置文件配置根上下文URL。你可以找到详细的方法here

相关问题