Подтвердить что ты не робот

Как группировать цели в Phing?

Есть ли способ группировать цели в Phing? У меня есть несколько целей, которые можно использовать повторно, используя их в разных порядках и комбинациях. Например, чтобы создать новую конструкцию dev:

$ phing clean
$ phing prepare
$ phing build
$ phing runtests

Или обновить сборку dev из репо:

$ phing update
$ phing runtests

Есть ли способ группировать эти цели, чтобы запускать их как одну команду? Я знаю, что вы можете цепью целей, например:

$ phing clean prepare build runtests
$ phing update runtests

Но в идеале я бы хотел запустить команду, например:

$ phing cleanbuild

Это приведет к запуску всех четырех целей. Таким образом, файл сборки может быть разделен на цели многократного использования. Создание новой цели, которая делает это, приведет к дублированию кода из существующих целей. Я знаю, что вы можете использовать параметр зависимости для выполнения других целей, но я хочу, чтобы каждая цель была независимой друг от друга.

Документация Phing не очень понятна, как это сделать, но я уверен, что можно называть цели в рамках других целей, поскольку это должен быть довольно распространенный способ делать вещи. Большое спасибо.

4b9b3361

Ответ 1

Хорошо, после небольшой охоты я нашел ответ. Вы можете вызывать цели из других целей, используя задачу PhingCallTask. Пример составной задачи:

<target name="cleanbuild" description="Runs a clean dev build">
    <phingcall target="clean" />
    <phingcall target="prepare" />
    <phingcall target="build" />
    <phingcall target="runtests" />
</target>

Документация находится здесь:

http://www.phing.info/docs/guide/stable/apbs25.html

Ответ 2

Ваш собственный ответ в порядке. Или вы можете использовать атрибут depends и сделать его еще короче:

<target name="cleanbuild" description="Runs a clean dev build" depends="clean, prepare, build, runtests"></target>