Bazel构建不适用于Maven项目

时间:2018-02-04 06:47:39

标签: maven dependencies bazel bazel-aspect

我是Bazel的新手并且正在学习它的构建工作,目前我正在尝试使用Maven项目中的bazel构建,请告诉我如何使其工作,谢谢。

以下是我尝试定义的 WORKSPACE 文件:

maven_jar(
  name = "junit",
  artifact = "junit:junit:3.8.1",
)

maven_jar(
  name = "log4j1",
  artifact = "org.apache.logging.log4j:log4j-core:2.6.2",
)

maven_jar(
  name = "log4j2",
  artifact = "org.apache.logging.log4j:log4j-api:2.6.2",
)
.....

以下是我要定义的 BUILD 文件:

package(default_visibility = ["//visibility:public"])

java_binary(
    name = "everything",
    srcs = glob(["src/main/java/**/*.java"]),
    resources = glob(["src/main/resources/**"]),
     main_class = "src/main/java/com/test/test/test/App",
    deps = [
    "@junit//jar",
    "@log4j1//jar",
    "@log4j2//jar",
    "@jackson//jar",
    "@jsonsimple//jar",
    "@commonsdbutils//jar",
    "@commons//jar",
    "@guava//jar",
    "@poi//jar"],

)

这是我得到Bazel构建的结果:

mbp:bazel_test me$ bazel build //:everything
INFO: Analysed target //:everything (1 packages loaded).
INFO: Found 1 target...
    ERROR: /Users/me/git/test/test/BUILD:4:1: Building everything-class.jar (104 source files) failed (Exit 1)
    src/main/java/com/test/test/test/Testapp.java:13: error: cannot find symbol
    import org.apache.poi.ss.usermodel.Cell;
                                      ^
      symbol:   class Cell
      location: program package org.apache.poi.ss.usermodel
      .....
      Target //:everything failed to build

1 个答案:

答案 0 :(得分:0)

我在这里看到两个问题:

  • webElem=driver.findElement(By.xpath("")); webElem.sendKeys(Keys.TAB); webElem.sendKeys(Keys.ENTER); 属性应使用点而不是斜杠:

main_class
  • poi jar中没有 java_binary( name = "everything", srcs = glob(["src/main/java/**/*.java"]), main_class = "src.main.java.com.test.test.test.App", ... 类。

找到jar的名字:

org.apache.poi.ss.usermodel.Cell

包的位置为$ bazel query --output=build @poi//jar ... java_import( name = "jar", visibility = ["//visibility:public"], jars = ["@poi//jar:poi-ooxml-3.9.jar"], srcjar = "@poi//jar:poi-ooxml-3.9-sources.jar", ) ,现在我们知道(来自上面$(bazel info output_base)/external/poi输出中的srcs属性)该文件被称为bazel query

poi-ooxml-3.9.jar