Задайте свойство внутри одной цели ant и используйте его в другой цели

Мой файл сборки

<target name="default">  
 <antcall target="child_target"/>  
 <echo> ${prop1}   </echo>  
</target>

<target name="child_target">  
 <property name="prop1" value="val1"/>   
</target>

Я получаю сообщение об ошибке ${prop1}. Как установить свойство в цель?

Ответы

Ответ 1

antcall создает новый проект. Из документации Ant:

Вызываемая цель запускается в новом проект; имейте в виду, что это означает свойства, ссылки и т.д., установленные так называемые цели не будут сохраняться к вызывающему проекту.

Использование зависит от этого:

<project default="default">
  <target name="default" depends="child_target">
    <echo>${prop1}</echo>
  </target>
  <target name="child_target">
    <property name="prop1" value="val1"/>
  </target>
</project>

Ответ 2

Старый и, вероятно, мертвый вопрос, который я знаю, но файл свойств, загруженный за пределы целевых объектов, но внутри проекта также будет работать. Android делает это с помощью local.properties, например:

<?xml version="1.0" encoding="UTF-8"?>
<project name="avia" default="help">

    <!-- The local.properties file is created and updated by the 'android' tool.
         It contains the path to the SDK. It should *NOT* be checked into
         Version Control Systems. -->
    <property file="local.properties" />