tomcat-maven-plugin,多个模块只构建一个战争

时间:2016-05-21 12:56:58

标签: java maven tomcat7

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

  • 共同
  • 持久性
  • 持久性的嵌入
  • 服务
  • 其余
  • 网络

所有这些都被合并到一个网络应用程序之战中,网络模块已将包装设置为战争。问题是,当我运行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}来导致submodule-dir)它有效。

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

感谢dunni的帮助,我注意到我对如何构建多模块项目的误解。现在我已将插件配置放在Web模块中并添加了一个绑定到安装阶段的执行,以便我可以重建整个项目并将其部署到我的tomcat。显然,maven会处理right execution order模块。

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <url>http://localhost:8080/manager/text</url>
        <server>tomcatServer</server>
        <path>/webapp</path>
        <warFile>${project.basedir}/target/${project.parent.artifactId}-${project.parent.version}.war</warFile>
        <username>admin</username>
        <password>password</password>
    </configuration>
    <executions>
        <execution>
            <id>redeployafterinstall</id>
            <phase>install</phase>
            <goals>
                <goal>redeploy</goal>
            </goals>
        </execution>
    </executions>
</plugin>
相关问题