bazel-contrib / rules_jvm_external

Bazel rules to resolve, fetch and export Maven artifacts
Apache License 2.0
327 stars 248 forks source link

tests jar not supported #1086

Open jdai8 opened 6 months ago

jdai8 commented 6 months ago
maven_install(
    artifacts = [
        "org.apache.hadoop:hadoop-minicluster:2.2.0",
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
    maven_install_json = "//:maven_install.json",
    version_conflict_policy = "pinned",
)

bazel build @maven//:org_apache_hadoop_hadoop_minicluster fails with:

ERROR: /private/var/tmp/_bazel_jack_dai/6c48c0a3eb95289be6da2989b1545c64/external/maven/BUILD:1655:11: in deps attribute of jvm_import rule @@maven//:org_apache_hadoop_hadoop_minicluster: rule '@@maven//:org_apache_hadoop_hadoop_yarn_server_tests' does not exist
ERROR: /private/var/tmp/_bazel_jack_dai/6c48c0a3eb95289be6da2989b1545c64/external/maven/BUILD:1655:11: Analysis of target '@@maven//:org_apache_hadoop_hadoop_minicluster' failed
ERROR: Analysis of target '@@maven//:org_apache_hadoop_hadoop_minicluster' failed; build aborted

bazel query @maven//:all prints out

...
@maven//:org_apache_hadoop_hadoop_yarn_server_tests_test_jar_tests_2_2_0_extension
@maven//:org_apache_hadoop_hadoop_yarn_server_tests_tests
@maven//:org_apache_hadoop_hadoop_yarn_server_tests_tests_2_2_0
...

But it looks like the deps are looking for org_apache_hadoop_hadoop_yarn_server_tests (with one tests).

https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-yarn-server-tests/2.2.0/

Maybe related to https://github.com/bazelbuild/rules_jvm_external/issues/488?

thomasbao12 commented 5 months ago

Btw, in the maven_install file for hadoop mini cluster I see:

"coord": "org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.2.0",
jdai8 commented 5 months ago

It looks like we can workaround with:

    override_targets = {
        "org.apache.hadoop:hadoop-yarn-server-tests": "@maven//:org_apache_hadoop_hadoop_yarn_server_tests_tests"
    },