Должен ли я использовать включить рецепт или добавить рецепт для запуска списка?
пытаясь выяснить лучший подход для большого проекта. Когда это целесообразно, чтобы добавить рецепты в рецепте с помощью include_recipe
в отличие от добавления рецепта run_list
? Есть хорошее правило?
2 ответа:
Как я вижу, любой рецепт должен быть в состоянии работать на пустой машине самостоятельно. Поэтому, если какой-то рецепт A зависит от рецепта B, Я всегда использую include_recipe.
например: 2 поваренные книги, tomcat и java. Tomcat требует java.
когда какой-то пользователь хочет установить tomcat, он может понятия не иметь, что он на самом деле требует какой-то другой поваренной книги, чтобы установить его. Он запускает рецепт tomcat, и либо он терпит неудачу с какой-то совершенно бесполезной ошибкой сообщение типа "нет java найдено" или еще хуже - это удается, но тогда, конечно, пользователь не может запустить tomcat, потому что у него нет установленной java.
но когда есть
include_recipe 'java'
строка в поваренной книге tomcat, которая также требуетdepends 'java'
строка в метаданных, пользователь при попытке установить tomcat, увидит понятное сообщение об ошибке:"поваренная книга java не найдена". Таким образом, фактически пользователь может загружать зависимости самостоятельно (или даже с помощью какого-либо автоматического инструмента) без фактического запуска рецептов, но чтение метаданных.
вся логика должна управляться с помощью списков выполнения. Поваренные книги, как бы они ни старались, не так многоразовы, как люди хотели бы думать. Все
include_recipe
does-это добавить еще одно место, где пользователи должны искать, чтобы выяснить, что список запуска будет делать, чтобы сделать его явным и поместить его в список запуска.