首页 文章

Bazel工作目录与Maven不同 . 如何迁移?

提问于
浏览
2

我有一个用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运行文件,其根植于工作空间,即现在必须打开测试:

new File("projectA/src/test/data/foo.txt");

迁移后这一切都很好,但您是否在迁移过程中处理这种情况,即如何在Maven和Bazel中进行测试?

Bazel测试运行器是否提供任何设施来调整遗留行为的路径?

1 回答

  • 0

    我目前的解决方法是检查 new File(".").getAbsoluteFile().getParentFile() 是否 __main__ .

    TestFileUtil.java

相关问题