我大致遵循 Martin Aspeli 的《Professional Plone 4 Development 》一书,并使用 buildout 进行了可重复的部署。为了使一切完全自动化,我希望能够运行bin/buildout
并找到在所有正确加载项激活的情况下工作的站点。例如,我正在使用collective.blog.star
,目前,我必须登录该站点并激活它才能添加博客视图等。
如何使 buildout 也激活它在特定 Plone 站点对象中下载的附加组件?
正如 Martijn 所写,quickinstaller 会处理这个问题,它只是一个简单的依赖声明,您可以在包中执行此操作,以便在站点创建时自动安装产品,这需要两个简单的步骤:
在 your.package/setup.py 添加:
setup( ...
install_requires=[ ...
'collective.blog.star'
为了让 buildout 知道,这个鸡蛋也应该被拉出并提供给 ZOPE 实例。
在 your.package/your/package/profiles/default/metadata.xml 添加:
<object ... >
<dependencies>
<dependency>profile:collective.blog.star:default<dependency>
<dependencies>
在安装产品时,通过配置文件实际激活依赖产品。
检查配置文件的名称是否真的是“默认”,因为这只是一个约定,在产品的 configure.zcml 中定义。
可能是,安装顺序可能很重要,因为您还想在同一过程中创建内容,我不知道会先执行哪个步骤,cbstar-install 或 content-creation,您必须对此进行测试。如果顺序不正确,您可能必须编写另一个包来拆分这两个任务,根据eggs-definitions-list 中的位置控制安装顺序(先到先,IIRC)。