2016-07-29 40 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

相關問題