如何在构建期间激活Plone产品?

如何在构建期间激活Plone产品?,plone,buildout,Plone,Buildout,我大致遵循Martin Aspeli的书Professional Plone 4 Development,并使用buildout进行了可重复的部署。为了使一切都完全自动化,我希望能够运行bin/buildout,并发现该站点与所有正确的加载项一起工作。例如,我使用的是collective.blog.star,目前,我必须登录该网站并激活它才能添加博客视图,等等 我如何使buildout也激活它在特定Plone站点对象中下载的附加组件?正如Martijn所写,quickinstaller会解决这个

我大致遵循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>

配置文件:collective.blog.star:默认值
要实际激活依赖项产品,请在安装产品时,通过配置文件

检查配置文件的名称是否为“默认”,因为这只是产品的configure.zcml中定义的约定


安装顺序可能很关键,因为您也希望在同一个过程中创建内容,我不知道首先执行哪一步,c.b.star-install还是内容创建,您必须对此进行测试。如果顺序不对,您可能需要编写另一个程序包来拆分这两个任务,根据“鸡蛋定义”列表中的位置控制安装顺序(先到先,IIRC)。

我投票结束这一问题,因为我重复了您的另一个问题;这个问题的答案和我在另一个问题上给你的答案完全一样;那就够了。您知道有没有关于激活和停用加载项需要使用哪些Python的文档?我的Google fu让我失望了。通常,是quickinstaller帮你解决这个问题。我在回答中给你的食谱可以为你运行这些。