---- Отредактировано для выравнивания с полным списком файлов муравьев, теперь доступно ----
Ваши целевые зависимости, вероятно, приводят к тому, что задача вызывается дважды. Если вы хотите, чтобы он вызывался только один раз, поместите что-то вроде этого:
<target name="recreate-via-http" unless="recreate-via-http.done">
<property name="recreate-via-http.done" value="true"/>
<loadresource property="result" >
<url url="http://someserver/somecall.php" />
</loadresource>
<echo>${result}</echo>
</target>
Если он вызывается дважды после установки такой защиты, то это код в реализации loadresource задачи ant, или ant вызывается дважды каким-либо внешним элементом (например, IDE). В любом случае это не ошибка в цепочке зависимостей.
Единственный способ исправить это - получить доступ к URL-адресу и проверить, нужно ли загружать файл; затем, если это нужно загрузить, загрузите его.
<target name="recreate-via-http">
<antcall="check.recreate-via-http"/>
<antcall="execute.recreate-via-http"/>
</target>
<target name="check.recreate-via-http">
... access the remote URL, and
get it's last modified time
... access the local file copy, and
get it's last modified time
... call an ant condition to determine
if the two times are the same, setting
a property 'execute.recreate-via-http.notNeeded'
if they are identical.
</target>
<target name="execute.recreate-via-http" unless="execute.recreate-via-http.notNeeded">
<loadresource property="result" >
<url url="http://someserver/somecall.php" />
</loadresource>
<echo>${result}</echo>
</target>
При такой структуре проверка будет выполняться каждый раз, но файл будет обновляться только в том случае, если измененное время отличается. Если файл не обновляется каждый раз, другие задачи, скорее всего, не будут обнаруживать его как новый и выполнять меньше работы (при условии, что он был написан для пропуска уже выполненной работы, например, javac, copy, mkdir и т. Д.).