tomcat7 maven插件的默认阶段是什么?

tomcat7 maven插件的默认阶段是什么?,maven,maven-plugin,Maven,Maven Plugin,我希望构建过程将war部署到远程服务器。到目前为止,我已经运行了mvn clean install tomcat7:deploy 这在我看来似乎是错误的,因为它可能是部署阶段的一部分。但如果我尝试进行mvn部署,我会得到: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=i

我希望构建过程将war部署到远程服务器。到目前为止,我已经运行了
mvn clean install tomcat7:deploy

这在我看来似乎是错误的,因为它可能是部署阶段的一部分。但如果我尝试进行
mvn部署
,我会得到:

Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter
因为我还没有定义任何要部署到的存储库(我真的不想部署到远程存储库,只是使用这个阶段来执行tomcat maven插件…)


我希望能够在不部署到任何远程存储库的情况下运行tomcat maven插件。这可能吗?

默认情况下插件不会执行。您必须向它添加执行,或者像以前那样调用它(f.e.mvn clean install tomcat7:deploy)

Tomcat上的部署与Maven部署阶段/部署到远程存储库无关

要将Tomcat部署绑定到某个阶段,请在Tomcat maven插件配置中添加如下内容:

  <executions>
    <execution>
      <id>tomcat-deploy</id>
      <phase>pre-integration-test</phase>
      <goals>
        <goal>deploy</goal>
      </goals>
    </execution>
  </executions>

tomcat部署
预集成测试
部署

在这种配置中,Tomcat的部署将发生在预集成测试阶段,我认为这是最常见的阶段。

解决方案是将其绑定到概要文件

<profile>
  <id>webapp-deploy</id>
..
          <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>tomcat-deploy</id>
                <phase>install</phase>
                <goals>
                  <goal>deploy-only</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
..
</profile>

webapp部署
..
org.apache.tomcat.maven
tomcat7 maven插件
tomcat部署
安装
仅部署
..
只需运行-Pwebapp deploy

这是因为Maven(在一个非常令人恼火的决定中)决定添加“deploy”一词。在Maven世界中,deploy意味着获取您刚刚构建的二进制文件并将其上传/存储在本地Maven存储库中。不要将新构建的war部署到服务器

<> P>大多数java开发者认为“发布”工件实际上是对Maven .< /P>的“部署”。

如果您认为Maven只关心依赖性管理的构建,则会有帮助。构建依赖关系管理之外的任何内容都需要特殊调用(如tomcat7:redeploy)或不同的脚本环境。

我认为Maven中的每个插件都有一个默认配置,并将自身附加到特定阶段。不管怎样,集成前测试似乎是正确的阶段…您是否知道如何在已经部署的战争中以这种方式部署<代码>重新部署和
取消部署
目标似乎缺失。唯一可用的是
exec-war-only、deploy-only、shutdown、run-war-only、run、deploy、run-war、exec-war、help
nevermin。要重新部署,需要在插件配置中添加
true
标志。请给出投票的理由