1

プロセスリソースフェーズで実行する必要がある実行を使用して、プラグイン(pom.xml内)を指定しました。したがって、プロジェクトを開始すると、プロジェクトをコンパイルして実行する前に、ゴール(liquibaseを使用したデータベースの変更)が実行されます。

<plugin>
  [...] 
  <executions>
    <execution>
      <phase>process-resources</phase>
      <goals>
        <goal>update</goal>
      </goals>
    </execution>
  </executions>
</plugin>

プロジェクトを本番環境にデプロイすると、Tomcatによってデプロイされるwarパッケージがあります。

しかし、目標がいつ実行されるかはわかりません。目標がデプロイされてから、ユーザーがアプリケーションを使用できるようになる前に、目標を1回だけ実行したいと思います。

この場合のワークフローはどうですか?目標は一度だけ自動的に実行されますか、それともここで何かを逃しますか?

4

1 に答える 1

1

1。「しかし、目標がいつ実行されるかはわかりません。」

Mavenの出力を確認できます。目標を「process-resources」フェーズにバインドするため、次のような「resources:resources」を確認できます。

   [INFO] [resources:resources {execution: yourExecutionId}]

各exectionにidを追加することをお勧めします。

            <executions>
                <execution>
                    <id>yourExecutionId</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>

Mavenビルドのライフサイクルの詳細については、こちらを参照してください。

2。「ゴールは一度だけ自動的に実行されますか、それともここで何かを逃しますか?」

常にではない。Mavenプラグインはライフサイクルをフォークできます。つまり、 maven-source-pluginなどの一部のフェーズが複数回実行されます。

于 2013-01-29T05:02:32.253 に答える