跳转到主要内容

构建OpenLayers库的标准或自定义配置文件

项目描述

此配方提供创建 自定义构建配置文件 的方法,用于 OpenLayers JavaScript库。在buildout的 parts 目录下名为目录中创建一个压缩的单个OpenLayers.js文件以及相应的 imgtheme 目录。

例如,考虑以下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 (9.8 kB 查看哈希)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面