Maven фаза / цель приоритетность вопроса - PullRequest
0 голосов
/ 20 января 2012

У меня есть несколько свойств в двух скриптах bash, которые я хочу заменить при запуске mvn test, чтобы один сценарий мог быть выполнен до фазы test, а другой - с использованием exec-maven-plugin.

Скрипты 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.Выходные данные выглядят как , поэтому .

exec-maven-plugin пытается выполнить сценарий startMongo до того, как будут произведены правильные замены - поэтому появляется сообщение об ошибке для выполнения mongod из/mongod.

Если я запускаю mvn process-test-resources, замены сделаны правильно, и я могу вручную успешно запустить скрипт.

Мой pom.xml настроен как , так что .Как правильно настроить правильные фазы, чтобы это работало?

1 Ответ

1 голос
/ 20 января 2012

Похоже, проблема в следующей строке:

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

Если этот скрипт - startMango - нуждается в фильтрации, фильтрация будет выполнена, и результат будет помещен в папку target/test-classes. Исходный файл не будет обновлен.

Как насчет изменения строки выше:

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

Аналогично для stopMongo.

Хотя я не уверен, как это работало вручную.

...