自动生成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>
拖拉机src目录:
扫描发育卵的一组目录。默认为src 构建的目录。
拖拉机目标部件:
使用 拖拉机src目录。默认为zope实例部分(如果有的话)。
拖拉机自动装载zcml(布尔值):
用找到的鸡蛋更新拖拉机目标部件的 选项 在拖拉机src目录中。默认为真
拖拉机zcml顶部:
先加载zcml文件的一组鸡蛋。默认为空集。

如何使用

使用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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在JUnit5中定义优先级   Web驱动程序将焦点切换到iframe的java困难   java JFileChooser没有文件名文本字段选项   本地化是否可以回退到Java中resourcebundle的宏语言(例如,nynorsk>norsk)   禁用时Java断言的性能拖动   未考虑执行中的java jsonschema2pojo maven插件配置   java微调器。setSelection未调用setOnItemSelectedListener函数   序列化XStream:序列化java的反序列化。sql。时间导致错误   java无法理解为什么“ajpnio8009execXX”线程在AbstractQueuedSynchronizer$ConditionObject上阻塞/等待时间。等候   Java date给我的格式是mm/dd/yyyy,其中jquery datepicker的日期格式是dd/mm/yyyy   jsf如何用javaweb应用程序在客户端重写csv文件   雅加达ee Java邮件Api,无法从outlook客户端读取“.msg附件”   java PreparedStatement性能调优