Вопрос по maven, eclipse – Развертывание файла войны в корневой каталог Tomcat с Maven pom.xml

2

Предполагая следующееpom.xml Maven будет строитьclient.war файл, который при развертывании в Tomcat будет иметь URLwww.server.com:8080/client/

Что нужно изменить, чтобы приложение могло быть доступно в корне сервера?www.server.com:8080/?

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>...</groupId>
    <artifactId>client</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>...</name>
    <url>http://maven.apache.org</url>
    <build>
        <resources>
            <resource>
                <directory>target/generated-resources</directory>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            ...
        </plugins>
        <finalName>client</finalName>
    </build>
...
</project>
Если вы называете его ROOT.war вместо root.war, он говорит «ОК» в менеджере и развертывает его, но в результате все равно & # xB4; Это работает! Если вы видите эту страницу через веб-браузер, это означает, что вы успешно настроили Tomcat. Поздравления & # XB4!; Dominik
Это создало проект, который теперь доступен в / root /. Может ли файл server.xml или что-то изменить, чтобы он указывал на / client / как страницу по умолчанию? Dominik
Переименуйте полученный файл войны в ROOT.war и удалите его из Tomcat после развертывания, это должно сработать. khmarbaise

Ваш Ответ

3   ответа
0

дет генерировать только файл войны. Вы должны настроить приложение на Tomcat. Если вы хотите добавить & quot; развернуть в контейнер & quot; к твоей мавенской сборке, иди сПлагин Tomcat Maven или жеПлагин Cargo Maven.

То, что вы хотите, на самом деле не имеет ничего общего с Maven. Установка имени войны на ROOT.war должна сделать это (<finalName>ROOT</finalName> в вашем разделе сборки), но если вы хотите добавить свойcontext.xml к файлу войны, вы могли бы сделать что-то вродеsrc/main/webapp ваша папка веб-приложения определена maven):

`<plugin>
<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-war-plugin</artifactId>  
        <configuration>  
          <webResources>  
            <webResource>  
              <directory>${basedir}/src/main/webapp/META-INF</directory>  
              <includes>  
                <include>context.xml</include>  
              </includes>  
              <targetPath>META-INF</targetPath>  
              <filtering>true</filtering>  
            </webResource>  
          </webResources>  
        </configuration>  
      </plugin>  

`

2

tomcat и maven, я собираюсь сделать предположение, что здесь используется плагин m2e-wtp. Там естьFAQ, который обращается к этому, Это также показывает, как изменить корень контекста специфическим для maven способом (используя плагин war для указания finalName для войны), что приводит к файлу war с правильно названным именем (например, ROOT.war, как упоминалось в других ответах).

8

что вы можете покинуть войну с именем client.war, если хотите. Затем настройтеплагин tomcat6, установив путь следующим образом:

<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat6-maven-plugin</artifactId>
  <version>2.0-beta-1</version>
      <!-- put the configuration in an execution if you want to... -->
      <configuration>
        <path>/</path>
        <warFile>${project.build.directory}/client.war</warFile>
        <!-- other config options here -->
      </configuration>
</plugin>

Я не использовал tomcat7 версию плагина, но я предполагаю, что он похож.

Похожие вопросы