3

私のプロジェクトでは、複数のMavenプロファイルがあります。各プロファイルでは、私はdocker-maven-pluginmaven-failsafe-pluginです。これが私の目標と段階を縛った方法です。Mavenプロファイルとフェーズの明確化

ドッカー-達人 - プラグイン

<phase>pre-integration-test</phase> 
<goals> 
    <goal>start</goal> 
</goals> 

<phase>post-integration-test</phase> 
<goals> 
    <goal>stop</goal> 
    <goal>remove</goal> 
</goals> 

達人、フェイルセーフ・プラグイン

<phase>integration-test</phase> 
<goals> 
    <goal>integration-test</goal> 
</goals> 

<phase>verify</phase> 
<goals> 
    <goal>verify</goal> 
</goals> 

Iは、各データベース・タイプ(すなわちのMySQL、Postgresの等)のプロファイルを有しています。私がしようとしているのは、それぞれのデータベースタイプのドッカーについての統合テストを実行することです。

私の質問は、複数のプロファイル(つまり、mvn clean install -P local-postgres,local-mysql)を持つmvnを実行して、各プロファイルが順番に実行されるようにすることです。私の要件は、2つのドッカーコンテナを一度に持ち上げることではありません。

私が観察したところ、すべてのプロファイルのpre-integration-testフェーズが最初に実行され、The name "/apim-postgres" is already in use by container xxxxxで失敗します。それは、複数のプロファイルが与えられたときに、どのようにフェーズが動作するのでしょうか?

要件が満たされる方法はありますか?

答えて

0

これがうまくいくかどうかわかりませんが、個々のプロファイルを個別に定義するとうまくいくはずです。プロファイルごとに1つずつ、各プラグインを2回定義します。実行の順序は、さまざまな要因によって異なります。プロファイルを定義した場所はわかりませんが、同じpomで定義されている場合は、そのpomで定義された順序にする必要があります。詳細については、https://www.waltercedric.com/index.php?option=com_content&view=article&id=1795&catid=129&Itemid=332を参照してください。

+0

私のすべてのプロフィールは同じ画像がありません。私はあなたが与えた記事を読んでいる。 – Bee

+0

ルール4は欲しいものに似ていますが、同じではありません。私が望むのは、プロファイル-2のすべてのフェーズの前に、プロファイル-1のすべてのフェーズを実行することです。 – Bee