2010-05-17 7 views
2

У меня есть следующий прецедент: Мое приложение запускается с помощью скрипта Ant, который задает пользователю несколько вопросов о конфигурации проекта (параметры базы данных и т. Д.). Эти настройки сохраняются в файле свойств.Измените свойства в pom.xml во время выполнения с помощью Maven Ant Tasks. Является ли это возможным?

Затем я хочу запустить Maven из моего скрипта Ant от Maven Ant Tasks, который должен заменить предопределенные свойства в моем pom.xml свойствами свойства-файла. Я не хочу менять pom.xml.

Есть ли способ сделать это? Спасибо заранее!

(BTW i already tried a similar approach with maven only, which seems to be impossible at the moment)

ответ

7

Вы можете переопределить свойства в командной строке Maven с помощью -D, и они будут замещать свойства в файле проекта.

Например, в pom.xml

<properties> 
    <myProp>A</myProp> 
    </properties> 

В вашем муравей build.xml, вы можете вызвать МВН командную строку

mvn -DmyProp=B install 

, который установит myProp к B в проекте , В mvn ant task page обсуждается использование макроса для вызова командной строки maven. Это можно легко настроить, чтобы передать дополнительные свойства.

Чтобы сделать это только в maven, используйте плагин exec для запуска maven, передавая параметры команды так же, как это делается с помощью задачи ant: java.

1

Вы пытались заменить свойства на лету через <copy> ant task?

Предположите ваши объекты в файле settings.properties. Определите свойства, которые необходимо заменить в вашем pom.xml@ вокруг них, вы можете скопировать файл pom и одновременно заменить некоторые свойства. Например .:

<copy file='pom.xml' toFile='real-pom.xml'> 
    <filterset filtersfile='settings.properties' /> 
</copy> 

Затем вы вызываете Maven:

MVN -f реальном pom.xml

 Смежные вопросы

  • Нет связанных вопросов^_^