gpt4 book ai didi

java - tomcat-maven-plugin 具有多个模块,仅构建一场 war

转载 作者:行者123 更新时间:2023-12-02 03:36:48 25 4
gpt4 key购买 nike

我尝试构建一个基于多个 Maven 模块的 Web 应用程序。其中一个模块称为“web”,专门负责打包一个 war,该 war 应该使用 tomcat7-maven-plugin 部署到 tomcat。我在parent.pom中定义了以下模块:

  • 常见
  • 坚持
  • 持久性嵌入
  • 服务
  • 休息
  • 网络

所有这些都组合成一个web-application-war,web模块已将打包设置为war。问题是,当我运行 mvn tomcat7:redeploy 时,我的 war 文件会一遍又一遍地为每个子模块(和主父模块)部署,这会导致 7 次部署。显然,事情不应该如此。 tomcat7-maven-plugin 配置当前如下所示:

<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<ignorePackaging>true</ignorePackaging>
<url>http://localhost:8080/manager/text</url>
<server>tomcatServer</server>
<path>/webapp</path>
<warFile> /home/username/dev/maven-multimodule-example/web/target/maven-multimodule-example-1.0-SNAPSHOT.war</warFile>
<username>admin</username>
<password>password</password>
</configuration>
</plugin>

正如你所看到的,我需要指定 warFile (这不是一个解决方案,而是一个 hack,因为我不能使用 ${project.basedir} ,这会导致子模块目录)以使其工作.

但是,如果我使用 mvn tomcat7:run 运行 Web 应用程序,它看起来相当不错,因为插件会跳过其他非 war 构建模块。

如何以正确的方式配置插件以仅部署一次 war 文件?

最佳答案

<build> 中的每个配置父 POM 的部分将被继承并因此在所有子模块中执行。因此,如果您只想部署一次,请将其仅添加到一个 POM(例如 Web POM)。

关于java - tomcat-maven-plugin 具有多个模块,仅构建一场 war ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37363242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com