У меня есть набор вложенных файлов сборки Ant, и мне нужно контролировать, какие свойства наследуются каждой «под» задачей. Я пытаюсь определить их как propertysets (чтобы сохранить управляемый код), но они не наследуются подзадачами, в отличие от свойств.Наследование набора свойств Ant с вложенными задачами
Приведенный ниже пример демонстрирует проблему, foo.*
копируется в средний проект, но не в нижний проект. Если я определяю каждое свойство, которое будет наследоваться явно, например bar.*
, они также получат унаследованный нижний проект.
Есть ли способ получить группу свойств, наследующих весь путь вниз, точно так же, как это делают отдельные свойства? Не переписывая подпроцессы, есть ли что-то еще, что я мог бы попробовать?
[top.xml]
<?xml version="1.0"?>
<project name="test-top">
<property name="foo.1" value="1"/>
<property name="foo.2" value="2"/>
<property name="bar.1" value="1"/>
<property name="bar.2" value="2"/>
<ant antfile="middle.xml" inheritall="false">
<propertyset>
<propertyref prefix="foo."/>
</propertyset>
<property name="bar.1" value="${bar.1}"/>
<property name="bar.2" value="${bar.2}"/>
</ant>
</project>
[middle.xml]
<?xml version="1.0"?>
<project name="test-middle">
<echo>foo ${foo.1} ${foo.2}</echo>
<echo>bar ${bar.1} ${bar.2}</echo>
<ant antfile="bottom.xml" inheritall="false"/>
</project>
[bottom.xml]
<?xml version="1.0"?>
<project name="test-bottom">
<echo>foo ${foo.1} ${foo.2}</echo>
<echo>bar ${bar.1} ${bar.2}</echo>
</project>
[ВЫВОД муравьиной -f top.xml]
[echo] foo 1 2
[echo] bar 1 2
[echo] foo ${foo.1} ${foo.2}
[echo] bar 1 2
Спасибо, Мартин, и Александр. Я задавался вопросом о написании свойств в файле, но не видел никакого способа сделать это, не заново перечисляя все свойства, которые я хотел передать (т. Е. Не лучше, чем решение для 'bar. *' Above). Я пропустил задачу «echoproperties» из-за того, что она была указана в разделе «Необязательные задачи», а не «Основные задачи» в документации Ant ...теперь я знаю! –