代码之家  ›  专栏  ›  技术社区  ›  CodeShining

Bazel文件夹命名约定

  •  1
  • CodeShining  · 技术社区  · 9 年前

    我知道bazel没有强加任何特定的文件结构,但使用bazel的产品遵循一些文件夹命名约定,其中一些(例如“第三方”)确实有特殊处理(它需要 licenses

    tools 和 third_party 例如,如果我想放一个“ruby工具链”,它是一个工具,因为它是语言解释器,但它也是第三方,因为它是由一个社区开发的。它应该去哪里?

    那么bazel规则呢?应该按惯用的方式放置在哪里?

    1 回复  |  直到 9 年前
        1
  •  3
  •   John Cater    9 年前

    我是一个Bazel开发者,我同意,这里的用法可能有点混乱。

    一般来说,我们建议将第三方用于您要导入以在项目中使用的任何外部代码。例如,Bazel本身有很多库,用于Python标志解析、Java编译和许多其他事情。

    (需要注意的是,Bazel的工具目录与此有点不同:我们实际上将它们打包并包含在Bazel二进制文件中,以便可以在运行时使用,而不是在构建时使用)。

    如果您正在编写自定义Skylark规则,您可以将其放在任何有意义的地方,但我想问的是,如果您认为它们在您的项目之外可能有用,您可以为它们创建一个单独的存储库,以便其他开发人员可以使用它们。使用专用存储库中的自定义规则要容易得多,因为您只需要在工作区中使用http\u archive()规则即可获得它们。如果它们与项目的其余部分混合在一起,其他人就更难重复使用。