2012-01-20 56 views
0

我在運行mvn test時需要替換兩個bash腳本中的某些屬性,例如一個腳本可能會在test階段之前執行,並且會在使用exec-maven-plugin之後執行一個腳本。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

看起來問題出在下面一行:

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

如果此腳本 - startMango - 需要過濾,過濾將完成和target/test-classes文件夾結果的地方。原始文件不會被更新。

如何改變上述路線爲:

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

同樣對於stopMongo爲好。

我不確定它是如何手動工作的。