1

我是裤子新手,使用pantsbuild python 教程来了解裤子

教程说:

The rule of thumb is that each directory of .py files has a BUILD file with a python_library target

我不明白为什么每个目录都需要 BUILD 文件?假设我有一个包含许多目录和子目录的库,为什么我不能在库主目录中有一个 BUILD 文件,其中包含库的sources所有相关文件?

将裤子与 pip 的 setup.py 进行比较 - 我只能在主文件夹和source所有文件上创建一个 setup.py。为什么裤子的概念不一样?

我还看到了裤子 python 项目的示例-其中的每个文件夹都有 BUILD 文件,并且任何 BUILD 文件(不是主 BUILD 文件)都声明了自己的库,其中包含与其 BUILD 文件相同级别的文件。这导致了奇怪的库名称 - 它看起来有点“hacky”

除了那条裤子,还有其他用于 PEX 的包装工具吗?

4

1 回答 1

1

该模式也称为1:1:1规则(用于“1 个目录,1 个 BUILD 文件和 1 个目标。”),它确实具有优势。

  • 子模块允许更多地使用构建缓存和更紧凑的迭代周期。
  • 模块作为多团队代码库中的隔离边界
  • 允许简洁的 BUILD 文件,跳过像 args 这样的name参数sourcespython_library()
  • 和更多

Pants 是一个企业级构建系统,专门用于大型 monorepos,因此对代码库切片进行操作的能力是必要的。子模块充当工作单元。

话虽如此,对于单个开发人员代码库,您是适合您的最终仲裁者。

是的,Pex 也可以与 Facebook 的另一个“类似 Blaze”的 Buck 一起构建。

于 2020-03-03T18:50:37.400 回答