Buck 中的细胞是如何工作的?
How do cells work in Buck?
我知道有一个 in buck called cells. There are some tests 可以演示它们的工作原理,但是是否有更多关于它们的书面信息?
电池如何在 Buck 中工作?
细胞解决了什么问题?
单元格非常适合这种情况:
- 您在使用 Buck 构建的存储库中有一个库
- 您想在项目中使用该库
- 您将库复制到项目中,但库的
BUCK
文件不起作用,因为根目录 (//
) 已更改为项目的根目录
- 您不想重写图书馆的
BUCK
文件!
单元允许我们创建独立的子项目,这些子项目有自己的 .buckconfig
和自己的 Buck 目标层次结构。导出这些目标时,单元格可以使用来自其他单元格的目标。
它是如何工作的?
示例的主要内容在 .buckconfig
:
[repositories]
neither = vendor/neither
repositories 标签告诉 Buck 每个单元在项目文件夹结构中的位置。每个单元格都有一个别名。这里我们有 neither = vendor/neither
,这意味着子文件夹 vendor/neither
是一个名为 neither
.
的单元格
我们可以使用以下语法在单元格内引用目标:cell-name//:target-in-cell
.
所以要使我们的示例目标依赖于 LoopPerfect/neither:
deps = [
'neither//:neither',
],
这是一个非常强大的功能,因为它使库的 BUCK
文件可移植。要在单元格内公开目标,您需要做的就是使其成为 public:
visibility = [
'PUBLIC',
]
我知道有一个
电池如何在 Buck 中工作?
细胞解决了什么问题?
单元格非常适合这种情况:
- 您在使用 Buck 构建的存储库中有一个库
- 您想在项目中使用该库
- 您将库复制到项目中,但库的
BUCK
文件不起作用,因为根目录 (//
) 已更改为项目的根目录 - 您不想重写图书馆的
BUCK
文件!
单元允许我们创建独立的子项目,这些子项目有自己的 .buckconfig
和自己的 Buck 目标层次结构。导出这些目标时,单元格可以使用来自其他单元格的目标。
它是如何工作的?
示例的主要内容在 .buckconfig
:
[repositories]
neither = vendor/neither
repositories 标签告诉 Buck 每个单元在项目文件夹结构中的位置。每个单元格都有一个别名。这里我们有 neither = vendor/neither
,这意味着子文件夹 vendor/neither
是一个名为 neither
.
我们可以使用以下语法在单元格内引用目标:cell-name//:target-in-cell
.
所以要使我们的示例目标依赖于 LoopPerfect/neither:
deps = [
'neither//:neither',
],
这是一个非常强大的功能,因为它使库的 BUCK
文件可移植。要在单元格内公开目标,您需要做的就是使其成为 public:
visibility = [
'PUBLIC',
]