2016-07-29 24 views
3

Ich baue eine Krieg Anwendungsdatei der unter Maven config, aber wenn ich die Anwendung in tomcat des Kontextstamm beginnen wird auf „/CommerceApi-0.0.1-SNAPSHOT/“Maven Krieg Anwendung einrichten ContextRoot

ich möchte diese

alle Ideen „/ api“, eingestellt werden ?, unterhalb der pom.xml ist

<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> 

Antwort

1

Ihre Anwendung nicht verantwortlich ist, seine eigenen Kontextpfad zu definieren. Das ist die Aufgabe des Containers, der Tomcat in Ihrem Fall. Tomcat bietet verschiedene Möglichkeiten, den Kontextpfad festzulegen. Sie können den Kontextpfad in einer Kontextdatei definieren oder den Kontextpfad in der Manageranwendung angeben. Wenn Sie Jenkins oder andere CI-Tools verwenden, können Sie dort auch den Kontextpfad angeben.

Am besten Sie lesen die Optionen, die Sie in Bezug auf Ihre bestimmte Tomcat-Version haben.

+0

Warum der Server Tomcat als Container aufgerufen wird? Ähnelt es der Containerisierung (Docker usw.), auf die sich die Leute beziehen? #NewbieHere – user3705478

4

Es gibt drei Möglichkeiten, es zu tun:

1. Wenn Sie nicht Eclipse/MyEclipse mit der Anwendung auf Anwendungsserver zu implementieren -

Sie benötigen den Einsatz von Maven-Krieg-Plugin zu machen , Sie können im Konfigurationsbereich den Befehl "wayName" angeben.

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

2. Wenn Sie Eclipse/MyEclipse verwenden die Anwendung auf Anwendungsserver zu implementieren -

Wenn Sie Eclipse verwenden und Krieg Bereitstellung von Eclipse verwenden, dann können Sie folgende Maven-Konfiguration verwenden.

<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> 

Führen Sie anschließend folgende Befehle aus, um die Eclipse-Einstellungen zu aktualisieren.

mvn eclipse:eclipse -Dwtpversion=2.0 

Restart Eclipse und dann Eigenschaften zu projizieren navigieren Sie zu, Eigenschaften-> Web die reflektierten Änderungen in root-Kontextwert anzuzeigen oder zu Deployment Assembly des Projekts zu navigieren, um die Änderungen

Hinweis anzuzeigen, kann oben erreicht werden mit m2eclipse durch Hinzufügen eines neuen Plugins.

3. Anwendungsserver spezifisch: sollten Sie bevorzugen Server agnostischen Ansatz zu folgen, aber wenn es erforderlich zu tun, dann können Sie Rootkontext url in serverspezifischen Konfigurationsdatei konfigurieren. Sie können detaillierte Ansatz finden here