8

ビルド プロセスで war をリモート サーバーにデプロイする必要があります。今まで私は走ってきたmvn clean install tomcat7:deploy

deployこれはおそらくフェーズの一部であるべきなので、私には間違っているように思えます。しかし、私がやろうとすると、次のようにmvn deployなります:

Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter

デプロイ先のリポジトリを定義していないため (このフェーズを使用して tomcat maven プラグインを実行するだけで、リモート リポジトリにデプロイしたくありません...)

リモートリポジトリにデプロイせずに tomcat maven プラグインを実行できるようにしたいと考えています。それは可能ですか?

4

3 に答える 3

7

プラグインはデフォルトでは実行されません。それに実行を追加するか、あなたがしたようにそれを呼び出す必要があります(fe 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 への展開は統合前テスト段階で行われます。これは、これを行う最も一般的な段階だと思います。

于 2012-09-23T20:10:44.633 に答える
1

解決策は、それをプロファイルにバインドすることです。

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

そして -Pwebapp-deploy を実行するだけです

于 2012-09-24T07:58:12.527 に答える