deploy()¶
警告
此功能是实验性的,可能会发生重大更改。有关更多信息,请参阅 Conan 稳定性 部分。
deploy() 方法用于将当前包中的制品(artifacts)部署(复制)出去。它只在 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 命令 的文档。
注意
最佳实践
只有“二进制”(binary)包的制品可以被部署,从
self.package_folder复制。建议只从包文件夹复制,不要从其他文件夹复制。deploy()方法用于最终的产品部署或在机器上安装二进制文件,因为它会从 Conan 缓存中提取文件。它不适用于正常的开发操作,也不适用于针对已部署的二进制文件来构建 Conan 包。推荐的做法是针对 Conan 缓存中的包进行构建。self.deploy_folder应该只在deploy()方法内部使用。