2012-01-20 13 views
0

mvn testを実行するときに置換する2つのbashスクリプトに、testフェーズの前に1つのスクリプトが実行され、exec-maven-pluginを使用して1つのスクリプトが実行されるようにするプロパティがあります。Mavenフェーズ/ゴール優先度の問題

のbashスクリプトはそうのようになります。

startMongo

#!/bin/bash 

${mongodNixDirLocation}/mongod --fork --logpath "${mongodLogDir}" --port ${mongodbTestPort} 

/bin/sleep 10 

stopMongo

#!/bin/bash 

mongoDbServer=`lsof -i tcp:${mongodbTestPort}| awk 'NR!=1 {print $2}'` 

for i in $mongoDbServer; do 
    echo "Stopping mongo DB server instance: $i" 
    kill -s SIGINT $i 
done 

私はmvn testを実行すると、実行の順序で問題を抱えているように見えます。出力はsoです。

exec-maven-pluginは、適切な置換が行われた前startMongoスクリプトを実行しようとしている - ので、エラーメッセージが/mongodからmongodを実行するように見えます。

mvn process-test-resourcesを実行すると、置換が正しく行われ、手動でスクリプトを正常に実行できます。

私のpom.xmlはsoのように設定されています。これがうまくいくように正しいフェーズを適切に設定するにはどうすればよいですか?問題は次の行にあるように見えます

答えて

1

: - startMango - このスクリプトは、場合

<executable>src/test/resources/startMongo</executable> 

フィルタリングを必要とする、フィルタリングはtarget/test-classesフォルダで行われ、その結果の場所されます。元のファイルは更新されません。

方法として上記の行を変更することについて:同様stopMongoのために同様に

<executable>${project.build.directory}/test-classes/startMongo</executable> 

私はそれがどのように手動でうまくいったのか分かりません。