【问题标题】:Use utility test classes under "src/test" from other module in Bazel使用 Bazel 中其他模块的“src/test”下的实用程序测试类
【发布时间】:2021-09-12 12:52:31
【问题描述】:

所以我正在将一个多模块项目从 maven 迁移到 Bazel,我遇到了以下问题:

我的模块 A 在“src/test”下包含一些实用程序测试类,模块 B 使用它们。在 maven 中,我们使用 maven-jar-plugin 生成一个 test-jar,它作为依赖项包含在模块 B 中。但我不确定如何将其迁移到 Bazel。

到目前为止,我的 bazel 配置如下所示:

模块 B:

java_library(
    name = "moduleB-lib",
    srcs = glob(["src/main/java/**/*.java"]),
    visibility = ["//visibility:public"],
    deps = [
        "//path/to/moduleA:lib"
    ],
)


java_library(
    name = "test-dep",
    srcs = glob(["**/src/test/java/**/*.java"]),
    visibility = ["//visibility:public"],
    deps = [
        ":moduleB-lib",
        "@maven:junit-dependencies"
    ],
)

java_test(
    name = "tests",
    args = ["--select-package=org.test"],
    main_class = "org.junit.platform.console.ConsoleLauncher",
    use_testrunner = False,
    visibility = ["//visibility:public"],
    runtime_deps = [":test-dep"],
)

但这不起作用,因为模块 B 无法看到这些实用程序类

error: cannot find symbol

【问题讨论】:

    标签: java maven bazel


    【解决方案1】:

    所以我终于找到了解决方案,其实很简单:

    java_library(
        name = "moduleB-lib",
        srcs = glob(["src/main/java/**/*.java"]),
        visibility = ["//visibility:public"],
        deps = [
            "//path/to/moduleA:lib"
        ],
    )
    
    
    java_library(
        name = "test-dep",
        srcs = glob(["**/src/test/java/**/*.java"]),
        visibility = ["//visibility:public"],
        deps = [
            ":moduleB-lib",
            "//path/to/moduleA:test-dep",
            "@maven:junit-dependencies"
        ],
    )
    
    java_test(
        name = "tests",
        args = ["--select-package=org.test"],
        main_class = "org.junit.platform.console.ConsoleLauncher",
        use_testrunner = False,
        visibility = ["//visibility:public"],
        runtime_deps = [":test-dep"],
    )
    

    为了让它工作,我刚刚从模块 A 中添加了测试依赖项的 java 库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-10
      • 2018-10-17
      • 2016-11-11
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多