deploy()

警告

此功能是实验性的,可能会有重大更改。 有关更多信息,请参见 Conan 稳定性 部分。

deploy() 方法旨在部署(复制)当前软件包中的构件。 它仅在 conan install 时执行,当提供了 --deployer-package 参数时,否则 deploy() 将被忽略。

构件应部署到 self.deploy_folder,默认情况下是当前文件夹。 可以使用 --deployer-folder 定义自定义目标。 一个基本的 deploy() 方法会将所有文件从软件包文件夹复制到部署文件夹

from conan import ConanFile
from conan.tools.files import copy

class Pkg(ConanFile):

    def deploy(self):
        copy(self, "*", src=self.package_folder, dst=self.deploy_folder)

有关更多信息,请参阅 conan install 命令 的文档。

注意

最佳实践

  • 只有 “二进制” 包构件可以被部署,从 self.package_folder 复制。 建议仅从软件包文件夹复制,而不是从其他文件夹复制。

  • deploy() 方法旨在用于最终生产部署或在机器上安装二进制文件,因为它从 Conan 缓存中提取文件。 它不适用于正常的开发操作,也不适用于针对已部署的二进制文件构建 Conan 包。 建议针对 Conan 缓存中的包进行构建。

  • self.deploy_folder 只能在 deploy() 方法中使用。