构建OpenLayers库的标准或自定义配置文件
项目描述
此配方提供创建 自定义构建配置文件 的方法,用于 OpenLayers JavaScript库。在buildout的 parts 目录下名为目录中创建一个压缩的单个OpenLayers.js文件以及相应的 img 和 theme 目录。
例如,考虑以下buildout.cfg文件
[buildout] parts = openlayers-2.7-wms [openlayers-2.7-wms] recipe = zgeo.recipe.openlayers url = http://openlayers.org/download/OpenLayers-2.7.tar.gz include = OpenLayers/Map.js OpenLayers/Layer/WMS.js
构建它
$ bin/buildout -c buildout.cfg Installing openlayers. openlayers-2.7-wms: Creating download directory: /Users/seang/code/ol-recipes/downloads openlayers-2.7-wms: Extracting package to /Users/seang/code/ol-recipes/parts/openlayers__compile__ Merging libraries. Importing: OpenLayers.js Importing: OpenLayers/BaseTypes.js Importing: OpenLayers/Map.js Importing: OpenLayers/SingleFile.js Importing: OpenLayers/Util.js Importing: OpenLayers/BaseTypes/Class.js Importing: OpenLayers/Layer/WMS.js Resolution pass 1... Importing: OpenLayers/BaseTypes/Bounds.js ... Re-ordering files... Exporting: OpenLayers/SingleFile.js Exporting: OpenLayers.js ... Exporting: OpenLayers/Layer/WMS.js Total files merged: 22 Compressing using jsmin. Adding license file. Writing to OpenLayers.js. Done.
生成以下文件
$ ls -l parts/openlayers-2.7-wms/ total 224 -rw-r--r-- 1 seang staff 112535 Jun 3 13:41 OpenLayers.js drwxr-xr-x 25 seang staff 850 Jun 3 13:41 img drwxr-xr-x 3 seang staff 102 Jun 3 13:41 theme
详细文档
支持选项
- url
要下载和提取的包的URL。支持的包格式为 .tar.gz、.tar.bz2 和 .zip。该值必须是一个完整的URL,例如 http://openlayers.org/download/OpenLayers-2.7.tar.gz。不能同时使用 path 选项和 url 选项。
- path
包含要构建和安装的源代码的本地目录的路径。该目录必须包含 configure 脚本。不能同时使用 url 选项和 path 选项。
- filename
要写入的JavaScript文件名称。默认为 OpenLayers.js。
- md5sum
包文件的MD5校验值。如果可用,将下载的包的MD5校验值与此值进行比较,如果值不匹配,则执行将失败。
- patch-binary
指向 patch 程序的路径。默认为 'patch',它应该在具有系统 PATH 中可用的 patch 程序的任何系统上工作。
- patch-options
传递给 patch 程序的选项。默认为 -p0。
- patches
应用于提取源的一系列补丁文件。每个文件应在单独的一行上给出。
- keep-compile-dir
可选开关,用于决定是否保留编译包的临时目录。这主要用于其他使用此配方编译软件但希望执行此配方未处理的额外步骤的配方。编译目录的位置存储在 options['compile-directory'] 中。接受的值是 'true' 或 'false',默认为 'false'。
此外,配方会尊重在 [buildout] 部分中设置的 download-directory 选项,并将下载的文件存储在该目录下。如果没有设置值,将在构建出根目录下创建一个名为 downloads 的目录,并相应地设置 download-directory 选项。
配方将首先检查是否有包的本地副本,然后再从网络上下载。可以通过将 download-directory 设置为相同的位置来在不同构建出之间共享文件。
示例用法
我们将使用一个简单的tarball来演示这个配方
>>> import os.path >>> src = join(os.path.dirname(__file__), 'testdata') >>> ls(src) - OpenLayers-2.7.tar.gz - README.txt
让我们创建一个构建出,用于构建和安装包
>>> write('buildout.cfg', ... """ ... [buildout] ... parts = package ... ... [package] ... recipe = zgeo.recipe.openlayers ... url = file://%s/OpenLayers-2.7.tar.gz ... include = ... OpenLayers/Map.js ... OpenLayers/Layer/WMS.js ... """ % src)
这将下载、提取并使用默认构建选项构建我们的演示包
>>> print system(buildout) Installing package. package: Creating download directory: /sample-buildout/downloads package: Extracting package to /sample-buildout/parts/package__compile__ Merging libraries. Importing: OpenLayers.js Importing: OpenLayers/BaseTypes.js Importing: OpenLayers/Map.js Importing: OpenLayers/SingleFile.js Importing: OpenLayers/Util.js Importing: OpenLayers/BaseTypes/Class.js Importing: OpenLayers/Layer/WMS.js <BLANKLINE> Resolution pass 1... Importing: OpenLayers/BaseTypes/Bounds.js Importing: OpenLayers/BaseTypes/Element.js Importing: OpenLayers/BaseTypes/LonLat.js Importing: OpenLayers/BaseTypes/Pixel.js Importing: OpenLayers/BaseTypes/Size.js Importing: OpenLayers/Events.js Importing: OpenLayers/Lang/en.js Importing: OpenLayers/Layer/Grid.js Importing: OpenLayers/Tile/Image.js Importing: OpenLayers/Tween.js <BLANKLINE> Resolution pass 2... Importing: OpenLayers/Lang.js Importing: OpenLayers/Layer/HTTPRequest.js Importing: OpenLayers/Tile.js <BLANKLINE> Resolution pass 3... Importing: OpenLayers/Layer.js <BLANKLINE> Resolution pass 4... Importing: OpenLayers/Projection.js <BLANKLINE> Resolution pass 5... <BLANKLINE> Re-ordering files... <BLANKLINE> Exporting: OpenLayers/SingleFile.js Exporting: OpenLayers.js Exporting: OpenLayers/BaseTypes.js Exporting: OpenLayers/BaseTypes/Class.js Exporting: OpenLayers/Util.js Exporting: OpenLayers/BaseTypes/Bounds.js Exporting: OpenLayers/BaseTypes/Element.js Exporting: OpenLayers/BaseTypes/LonLat.js Exporting: OpenLayers/BaseTypes/Pixel.js Exporting: OpenLayers/BaseTypes/Size.js Exporting: OpenLayers/Lang.js Exporting: OpenLayers/Tween.js Exporting: OpenLayers/Events.js Exporting: OpenLayers/Lang/en.js Exporting: OpenLayers/Projection.js Exporting: OpenLayers/Tile.js Exporting: OpenLayers/Map.js Exporting: OpenLayers/Tile/Image.js Exporting: OpenLayers/Layer.js Exporting: OpenLayers/Layer/HTTPRequest.js Exporting: OpenLayers/Layer/Grid.js Exporting: OpenLayers/Layer/WMS.js <BLANKLINE> Total files merged: 22 Compressing using jsmin. Adding license file. Writing to OpenLayers.js. Done. <BLANKLINE>
安装签出
有时,我们不仅需要下载和构建现有的tarball,还需要处理已存在于文件系统上的代码,例如SVN检出。
而不是提供 url 选项,我们将提供一个指向包含源代码的目录的 path 选项。
让我们通过首先将我们的测试包解压缩到文件系统中,然后构建它来演示这一点
>>> checkout_dir = tmpdir('checkout') >>> import setuptools.archive_util >>> setuptools.archive_util.unpack_archive('%s/OpenLayers-2.7.tar.gz' % src, ... checkout_dir) >>> ls(checkout_dir) d OpenLayers-2.7>>> write('buildout.cfg', ... """ ... [buildout] ... parts = package ... ... [package] ... recipe = zgeo.recipe.openlayers ... path = %s/OpenLayers-2.7 ... filename = ol-wms.js ... include = ... OpenLayers/Map.js ... OpenLayers/Layer/WMS.js ... """ % checkout_dir)>>> print system(buildout) Uninstalling package. Installing package. package: Using local source directory: /checkout/OpenLayers-2.7 Merging libraries. Importing: OpenLayers.js Importing: OpenLayers/BaseTypes.js Importing: OpenLayers/Map.js Importing: OpenLayers/SingleFile.js Importing: OpenLayers/Util.js Importing: OpenLayers/BaseTypes/Class.js Importing: OpenLayers/Layer/WMS.js <BLANKLINE> Resolution pass 1... Importing: OpenLayers/BaseTypes/Bounds.js Importing: OpenLayers/BaseTypes/Element.js Importing: OpenLayers/BaseTypes/LonLat.js Importing: OpenLayers/BaseTypes/Pixel.js Importing: OpenLayers/BaseTypes/Size.js Importing: OpenLayers/Events.js Importing: OpenLayers/Lang/en.js Importing: OpenLayers/Layer/Grid.js Importing: OpenLayers/Tile/Image.js Importing: OpenLayers/Tween.js <BLANKLINE> Resolution pass 2... Importing: OpenLayers/Lang.js Importing: OpenLayers/Layer/HTTPRequest.js Importing: OpenLayers/Tile.js <BLANKLINE> Resolution pass 3... Importing: OpenLayers/Layer.js <BLANKLINE> Resolution pass 4... Importing: OpenLayers/Projection.js <BLANKLINE> Resolution pass 5... <BLANKLINE> Re-ordering files... <BLANKLINE> Exporting: OpenLayers/SingleFile.js Exporting: OpenLayers.js Exporting: OpenLayers/BaseTypes.js Exporting: OpenLayers/BaseTypes/Class.js Exporting: OpenLayers/Util.js Exporting: OpenLayers/BaseTypes/Bounds.js Exporting: OpenLayers/BaseTypes/Element.js Exporting: OpenLayers/BaseTypes/LonLat.js Exporting: OpenLayers/BaseTypes/Pixel.js Exporting: OpenLayers/BaseTypes/Size.js Exporting: OpenLayers/Lang.js Exporting: OpenLayers/Tween.js Exporting: OpenLayers/Events.js Exporting: OpenLayers/Lang/en.js Exporting: OpenLayers/Projection.js Exporting: OpenLayers/Tile.js Exporting: OpenLayers/Map.js Exporting: OpenLayers/Tile/Image.js Exporting: OpenLayers/Layer.js Exporting: OpenLayers/Layer/HTTPRequest.js Exporting: OpenLayers/Layer/Grid.js Exporting: OpenLayers/Layer/WMS.js <BLANKLINE> Total files merged: 22 Compressing using jsmin. Adding license file. Writing to ol-wms.js. Done. <BLANKLINE>>>> ls('parts/package') d img - ol-wms.js d theme
由于使用 path 表明源代码是在配方控制之外获得的,因此管理它的责任也超出了配方的范围。
贡献者
Sean Gillies,作者
变更历史
0.2 (2009-06-04)
添加输出文件名选项。
0.1 (2009-06-03)
使用 ZopeSkel 创建了配方。
下载
项目详细信息
zgeo.recipe.openlayers-0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dc09eaa2f88ec7aacf2f0cad111235ce5aadcb3e80526a3e46c724f77c89c3f5 |
|
MD5 | 62bb0b38acba81284236e67abefab6b4 |
|
BLAKE2b-256 | 04e21c6cc4544924806d294ebc5db75dd77417b274cdaec2fcd8e1b456531c91 |