2

假设以下pom.xmlmaven 将构建一个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>
4

3 回答 3

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版本的插件,但我猜它是相似的。

于 2012-05-04T13:44:36.370 回答
2

由于您使用的是 eclipse、tomcat 和 maven 的组合,我将猜测这里使用的是 m2e-wtp 插件。有一个FAQ 可以解决这个问题。这也显示了如何以特定于 maven 的方式更改上下文根(使用 war 插件为战争指定 finalName),这会导致正确命名的战争文件(例如其他答案中提到的 ROOT.war 。

于 2013-06-27T15:01:40.377 回答
0

Maven war 插件(默认定义在 super-pom 上)只会生成一个 war 文件。您可以在 Tomcat 上设置您的应用程序。如果您想将“部署到容器”添加到您的 maven 构建中,请使用Tomcat Maven PluginCargo Maven Plugin

实际上,您想要的与 Maven 无关。将您的战争名称设置为 ROOT.war 应该这样做(<finalName>ROOT</finalName>在您的构建部分),但是如果您想将您添加context.xml到战争文件中,您可以执行以下操作(假设src/main/webapp您的 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>  

`

于 2012-05-04T14:34:46.900 回答