当前位置: 首页 > 知识库问答 >
问题:

如何使用maven插件tomcat7:运行多个上下文(WAR)?

叶英哲
2023-03-14

我一直在使用<code>mvn tomcat7 maven-plugin:run-am-pl:foo</code>成功地在Tomcat中一次只运行一个项目,如下图所示。现在我想让多个模块在同一端口但不同的上下文下运行。例如,我希望:

/    => 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命令来运行它时,它只运行它在项目层次结构中找到的第一个。如果我使用运行它们


共有2个答案

丁念
2023-03-14

使用类似的东西

  <configuration>
    <webapps> 
      <webapp> 
        <groupId>com.company</groupId> 
        <artifactId>mywebapp</artifactId> 
        <version>1.0</version> 
        <type>war</type>    
      </webapp> 
    </webapps> 
  </configuration>
咸昀
2023-03-14
匿名用户

正如已经建议的那样,使用< code >

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

默认情况下,这些附加Web应用程序使用${artifactId}上下文路径进行部署。

看起来如果没有这个参数,当您运行类似< code>mvn tomcat7:run(在稳定版本2.0上尝试)的东西时,额外的webapps会被悄悄地丢弃。相关的吉拉问题告诉我们这样做是为了“向后兼容”。

 类似资料:
  • 我创建了一个用于测试应用程序的maven项目。我在我的项目中使用了Webdriver,TestNG框架。我使用了maven surefire插件和reporty-ng插件为测试用例生成报告。当我使用命令(mvn测试站点)在IDE(eclipse)或命令提示符内运行时,这工作很好。现在我必须让它成为一个jar文件,这样我就可以把那个jar文件放到任何系统中运行它。 所以这里问题来了: Maven j

  • 以下是我的POM中的一些相关片段: 版本:Maven 3.0.4、Tomcat Maven Plugin2.1、Jacoco 0.6.2.201302030002、Java7

  • 我正在Java web应用程序中使用。现在,我可以使用命令运行我的web服务器。最近我注意到https://tomcat.apache.org/maven-plugin-2.0/tomcat7-maven-plugin/plugin-info.html中有一个名为的命令,它说: tomcat7:run: 使用嵌入式Tomcat服务器将当前项目作为动态web应用程序运行。 tomcat7:run-w

  • null 默认情况下,IntelliJ提供Ofc Maven。我已经尝试了mvnDebug tomcat7:run命令,但是intelliJ不能解析Maven内置命令行中的mvnDebug短语。也不能使用cmd命令行,因为我找不到“home”路径,因为maven是内置的IntelliJ。也尝试使用intelli,配置远程调试,但感到困惑。在“Maven Projects”窗口中也找不到tomcat

  • 有什么办法可以做到吗?如果我们不能用maven surefire插件来做,是否可以在测试中配置它?

  • 问题内容: 因此,我想做的是将Maven插件jetty配置为在不同的端口和不同的应用程序上运行多个(在我的情况下为两个)jetty服务器实例。 所以,我想要一个类似的东西: 我想用一个命令执行此操作:mvn jetty:run当然这意味着我必须在pom.xml中对其进行配置 我已经有两个不同的jetty配置文件:jettyA.xml和jettyB.xml,其中定义了不同的连接器。问题是我无法弄清楚