2014-08-08 1 views
1

Возможно ли, что файлы xml, входящие в состав 'includes' внутри build.xml, зависят от целей из этого build.xml (обратная зависимость)? Или мне нужно создать цепочку только передовых зависимостей и «зависит» от включенногоFile.target вниз? Если это возможно, как я могу назвать эти родительские цели?Вызов зависимости от родительского объекта build.xml внутри включает xml

Я пытаюсь извлечь несколько целей за пределами очень длинного файла build.xml, в такой ситуации:

build.xml определяет очень общую цель, buildMe используемый в файле build.xml. Он также определяет целевые runTasks. Он включает в себя someTasks.xml. runTasks зависит от buildMe и someTasks.groupOfTasks.

someTasks.xml определить цели groupOfTasks, task0, task1, task2. groupOfTasks зависит от task0, task1 и task2. Теперь задание task0 task1 или task2 зависит от buildMe от build.xml или некоторой другой цели, определенной в файле build.xml?

ответ

2

Это работает для меня: В главном проекте файла цели по умолчанию зависит от цели от commontasks.xml, которая зависит от цели от основного файла проекта:

<project name="main" default="default"> 

    <import file="commontasks.xml" as="common" /> 

    <target name="default" depends="common.hello" description="the main project"> 
    </target> 

    <target name="initMain"> 
    <echo>initializing main</echo> 
    <property name="aValue" value="MAIN" /> 
    </target> 

<project name="commontasks" > 

    <target name="hello" depends="initMain"> 
    <echo>hello from common tasks</echo> 
    <echo>aValue: ${aValue}</echo> 
    </target> 

Когда я запускаю муравейник, я получаю:

initMain: 
[echo] initializing main 
common.hello: 
[echo] hello from common tasks 
[echo] aValue: MAIN 
default: 
BUILD SUCCESSFUL 

Зависимость целевая default зависит от hello зависит от initMain и hello могут использовать свойства, указанные в initMain.

+0

Работа для меня тоже сейчас. Я думаю, что разница в том, что у меня не было = "" в инструкции import, или мой импорт не был первым выражением build.xml. Благодаря! –

+0

В соответствии с документацией ant о атрибуте as. Если опущен, будет использоваться атрибут name тега проекта импортированного файла. '. В моем примере импортированная задача должна быть доступна как «commontasks.hello». –

+0

Я также понял, что я использовал include вместо импорта, но я думал, что они такие же, просто импортировать разрешенные цели для переопределения. –

Смежные вопросы