首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用maven plugin tomcat7:运行多个上下文(WARs)?

如何使用maven plugin tomcat7:运行多个上下文(WARs)?
EN

Stack Overflow用户
提问于 2012-08-15 04:09:40
回答 2查看 18.5K关注 0票数 20

我已经成功地使用mvn tomcat7-maven-plugin:run -am -pl :fooTomcat like is shown here中一次只运行一个项目。现在,我想让多个模块在相同的端口下运行,但在不同的上下文中运行。例如,我想要:

/    => foo.war
/bar => bar.war

下面是我一直在使用的示例pom.xml代码片段:

<project><!-- ... -->
    <build><!-- ... -->
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.0-SNAPSHOT</version>
                    <configuration>
                        <path>/</path>
                        <port>8080</port>
                        <addContextWarDependencies>true</addContextWarDependencies>
                        <addWarDependenciesInClassloader>true</addWarDependenciesInClassloader>
                        <warSourceDirectory>${project.build.directory}/${project.build.finalName}/</warSourceDirectory>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>${project.groupId}</groupId>
                            <artifactId>bar</artifactId>
                            <version>${project.version}</version>
                            <type>war</type>
                            <scope>tomcat</scope>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <pluginRepositories>
        <pluginRepository>
            <id>apache.snapshots</id>
            <name>Apache Snapshots</name>
            <url>http://repository.apache.org/content/groups/snapshots-group/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
     </pluginRepositories>
</project>

tomcat7-maven-plugin:run插件可以做到这一点吗?我正在努力寻找正确的语法来让它很好地播放。当我运行maven命令来运行它时,它只运行它在项目层次结构中找到的第一个项目。如果我用<fork>true</fork>运行它们,或者显然是从不同的终端运行它们,那么我会得到"java.net.BindException: Address already in use :8080“。

EN

回答 2

Stack Overflow用户

发布于 2012-11-02 19:02:46

正如已经建议的,使用插件配置的<webapps>部分,但为每个webapp添加额外的参数<asWebapp>true</asWebapp>,即:

<webapps> 
  <webapp> 
    <groupId>com.company</groupId> 
    <artifactId>mywebapp</artifactId> 
    <version>1.0</version> 
    <type>war</type>    
    <asWebapp>true</asWebapp> 
  </webapp> 
  <webapp> 
    <groupId>com.company</groupId> 
    <artifactId>mywebapp2</artifactId> 
    <version>2.0</version> 
    <type>war</type>    
    <asWebapp>true</asWebapp> 
  </webapp>
</webapps> 

默认情况下,这些额外的are应用程序使用${artifactId}上下文路径进行部署。

看起来,如果没有这个参数,当你运行像mvn tomcat7:run这样的东西(在稳定版本2.0上试用)时,额外的when应用程序就会被悄悄丢弃。Related Jira issue说这样做是为了“向后兼容”。

票数 20
EN

Stack Overflow用户

发布于 2012-08-16 05:20:12

使用像这样的东西

  <configuration>
    <webapps> 
      <webapp> 
        <groupId>com.company</groupId> 
        <artifactId>mywebapp</artifactId> 
        <version>1.0</version> 
        <type>war</type>    
      </webapp> 
    </webapps> 
  </configuration>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11959975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档