如果我有以下代码,我有一个 puppet 课程:
class A {
require B
....
}
Run Code Online (Sandbox Code Playgroud)
我收到循环依赖错误。如果我有:
class A {
include B
....
}
Run Code Online (Sandbox Code Playgroud)
一切正常
Dan*_*ral 18
实际上,它们是非常不同的东西。要说require B
手段B
一定要来之前A
(和,因此,可能会导致循环依赖某些东西在B
转出require A
)。如果B
根本不包含,则会导致缺少依赖项错误。
另一方面,include B
just say B
will be apply 每当A
应用时:它没有说明它们之间的顺序。
lar*_*sks 10
这只是在 puppet 邮件列表上被询问(并回答):
当需要应用目录时,差异就很明显了。使用包含,您在包含时评估了其内容 - 但在包含之后必须明确依赖任何资源。使用 require - 为您创建了依赖项 - 但您必须小心并确保这是您想要的结果
- Ken Barber 在Require vs Include 中?