我是使用pantsbuild的新手,我似乎找不到任何好的问题、答案或文档来解决我的困境。
我有一个 Pants 项目,它应该可以自己构建。它有自己的pants
和pants.ini
文件以及BUILD
包含相对于项目根目录的路径(在哪里pants.ini
)的所有文件。该项目托管在 GitHub 上。
我想将此项目用作第二个项目中的依赖项。我选择使用 git 子模块来做到这一点。现在,我有如下布局:
path
├── pants
├── pants.ini
├── projectA
│ └── src
│ └── python
| └── main
│ ├── BUILD
│ └── main.py
└── projectB
├── pants
├── pants.ini
└── src
└── python
├── libA
| ├── BUILD
| └── lib.py
└── libB
├── BUILD
└── lib.py
自然,我希望在 projectA 中使用 projectB 的 BUILD 目标,所以在 projectA 中BUILD
,我有类似的东西:
dependencies = [ "projectB/src/python:libA" ]
这一切都很好。但是,由于 projectB 是一个独立的项目,它的src/python/libA/BUILD
文件包含以下内容:
dependencies = [ "src/python:libB" ]
正因为如此,projectB确实可以独立构建。但是,在尝试构建 projectA 时,来自 projectB 的构建目标从 projectA 的项目根目录开始搜索,例如:
Exception Message: libB was not found in BUILD files from path/src/python
pantsbuild 是否有任何干净的方法来处理这些子项目依赖项?或者我是否会被迫更改子项目的 BUILD 文件以使其适合我的项目布局(导致项目无法独立构建)?
欢迎任何解决方案或建议!