Можно ли указать значение свойства как свойство в муравье?

У меня есть файл свойств, который генерируется моим муравьиным скриптом во время выполнения. И я хочу получить доступ к значению свойств из этого сгенерированного файла свойств.

Например,

Сгенерированный файл свойств:

first.prop=abcd
second.prop=pqrs

и в сценарии я пытаюсь получить к нему доступ вот так,

У меня есть имя свойства (к которому я хочу получить доступ и которое находится в сгенерированном файле свойств) из какого-то другого свойства. Это свойство name.prop. так,

<echo message="${name.prop}"/>
<echo message="${${name.prop}}"/>

дает

first.prop
${${name.prop}}

как вывод соответственно. Какое может быть решение по этому поводу?


person toshish    schedule 12.04.2012    source источник


Ответы (1)


Это из документа:

Вложение фигурных скобок

В своей конфигурации по умолчанию Ant не будет пытаться сбалансировать фигурные скобки в расширениях свойств, он будет потреблять только текст до первой закрывающей скобки при создании имени свойства. т.е. при расширении чего-то вроде ${a${b}} он будет переведен на две части:

  • расширение свойства a${b - скорее всего ничего полезного.
  • буквальный текст } в результате второй закрывающей фигурной скобки

Это означает, что вы не можете использовать легко расширяемые свойства, имена которых задаются свойствами, но есть некоторые обходные пути для более старых версий Ant. С помощью Ant 1.8.0 и props Antlib вы можете настроить Ant для использования определенного там NestedPropertyExpander. если вам нужна такая функция.

Так что это не доступно легко. Обходные пути (с использованием <script /> или <macrodef /> можно найти здесь, в официальном FAQ по ant .

person oers    schedule 12.04.2012