Измените свойства в pom.xml во время выполнения с помощью задач Ant Maven Является ли это возможным? - PullRequest
2 голосов
/ 17 мая 2010

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

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

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

( Кстати, я уже пробовал подобный подход только с maven, что на данный момент кажется невозможным )

Ответы [ 2 ]

7 голосов
/ 17 мая 2010

Вы можете переопределить свойства в командной строке maven, используя -D, и они переопределят свойства в файле вашего проекта.

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

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

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

mvn -DmyProp=B install

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

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

1 голос
/ 18 мая 2010

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

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

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

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

mvn -f real-pom.xml

...