【发布时间】:2018-10-16 17:10:59
【问题描述】:
我有一个使用 Maven 构建的现有项目。它通常定义几个模块。我想将此项目迁移到 Bazel。
在第一次尝试中,我使用
└── project
├── moduleA
│ ├── BUILD
│ ├── pom.xml
│ └── src
│ ├── main
│ │ └── java
│ └── test
│ ├── data
│ └── java
├── moduleB
│ ├── BUILD
│ ├── pom.xml
│ └── src
│ ├── main
│ │ └── java
│ └── test
│ └── java
├── pom.xml
└── WORKSPACE
使用 Bazel 构建项目并不难。我现在的问题是测试无法找到他们的测试数据。
确实,对于 Maven(或 ant),工作目录是包含 pom.xml(或 build.xml)的目录。因此,在这种情况下,对于 moduelA 可以这样做:
new File("src/test/data/foo.txt");
然而,当测试在 Bazel 中运行时,工作目录是像工作区一样根植于根目录的 sanboxed runfiles,即现在必须打开测试:
new File("projectA/src/test/data/foo.txt");
迁移后一切正常,但是您是否在迁移期间处理这种情况,即如何使测试在 Maven 和 Bazel 中都通过?
Bazel 测试运行程序是否提供了任何工具来调整路径以适应遗留行为?
【问题讨论】:
标签: bazel