Как группировать цели в 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 не очень понятна, как это сделать, но я уверен, что можно называть цели в рамках других целей, поскольку это должен быть довольно распространенный способ делать вещи. Большое спасибо.
Ответы
Ответ 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>