自动生成zcml slug,buildout:egg和buildout:develop entries。
buildout.eggtractor的Python项目详细描述
buildout.eggtractor
问:什么是扩建?
a: http://pypi.python.org/pypi/zc.buildout"extensions
问题
在用buildout开发zope/plone鸡蛋时,我必须编辑buildout 每次创建/删除/重命名 src目录或其他开发目录中的开发egg (有时我不止一个)。
我必须在 [buildout] 然后在 development 选项中添加/删除/重命名egg路径 最后添加/删除/重命名 zope [实例] 或在我的策略包的 configure.zcml 文件中。 当速度设置为开发模式时,这太特别了。我需要一个 不那么枯燥的发展方式。
解决方案
buildout.eggtractor是一个buildout扩展,它扫描src 目录或我给鸡蛋的目录列表 自动。因此不再编辑构建的配置文件。
当 buildout.eggtractor 在扫描目录中找到一个鸡蛋时:
1. adds the egg to the ``eggs`` option of all zope instance parts or to a set of given parts 2. adds the egg's path in the ``develop`` option of the ``[buildout]`` 3. If ``tractor-autoload-zcml`` is not given or set to other thing than false, scans the egg folder for ``configure.zcml``, ``meta.zcml`` and ``overrides.zcml`` and adds the appropriate zcml entries to the ``zcml`` option of the zope instance parts or to a set of given parts.
当运行buildout时,这些步骤是动态完成的。所以我可以添加/删除/重命名 一个鸡蛋就会被捡起来。
注意:扩展名不会写入构建的配置文件。
buildout.eggtractor选项
< DL>如何使用
使用buildout.eggtractor非常简单。如前所述,这是一座建筑物 延伸。我要做的就是在 扩展名中声明它
[buildout] parts = extensions = buildout.eggtractor
就这些。 buildout.eggtractor 将扫描 src 目录并执行 每次运行buildout命令时都执行job。
当我有其他目录我想扫描我只是添加一个 拖拉机src目录,并添加我的目录 有:
[buildout] parts = extensions = buildout.eggtractor tractor-src-directory = dev-src1 dev-src2 src
在某些情况下,加载zcml文件的优先级很重要。我把鸡蛋加到 在 [buildout] 中的 拖拉机ZCML顶部选项中首先加载:
[buildout] parts = extensions = buildout.eggtractor tractor-src-directory = dev-src1 dev-src2 src tractor-zcml-top = plone.app.mypackage1
如果我想把在开发目录中找到的鸡蛋添加到鸡蛋中 一组给定零件的选项,我添加一个拖拉机目标零件选项 然后在那里添加部件:
[buildout] parts = instance1 instance2 instance3 extensions = buildout.eggtractor tractor-target-parts = instance1 instance3
这样,只更新instance1和instance3。
如果我已经有其他方法包含zcml文件(即:z3c.autoinclude) 我不想让"茄子拖拉机"产生zcml弹头,我添加了一个 拖拉机自动装载ZCML 选项并将其设置为 假
在大多数情况下,只需将buildout.eggtractor添加到 没有任何额外配置的 [buildout] 扩展选项 选项.
限制
扩展名假定egg名称反映其文件系统结构
示例:如果tegg名是com.mustap.www扩展名假定文件 系统结构如下:
1. com.mustap.www/src/com/mustap/www 2. com.mustap.www/com/mustap/www
这是扩展查找configure.zcml、meta.zcml和 覆盖.zcml文件。
如果egg名称与系统的结构无关, 分机将忽略它。
xxx:我想浏览目录比这个假设要好。
在我的情况下,这不是一个限制,因为我选择我的鸡蛋名称的方式。
穆斯塔法
电子邮件:mustap_at_gmail_com
网址:http://www.mustap.com