bazeltools / bazel-deps

Generate bazel dependencies for maven artifacts
MIT License
250 stars 122 forks source link

key "url" not found in dictionary #217

Open regisd opened 5 years ago

regisd commented 5 years ago

Repro: Use this dependency file:

dependencies:
  com.google.guava:
    guava:
      version: 26.0-jre
      lang: java
bazel run  //:parse -- generate -r /home/me/Projects/foo -s 3rdparty/workspace.bzl -d dependencies.yml

Expected: Correct dependency for guava in 3rdparty/jbm/com/google/guava

Actual:

INFO: Build completed successfully, 1 total action wrote 6 targets in 6 BUILD files

workspace.bzl has these dependencies:

def list_dependencies():
    return [
    {"artifact": "com.google.code.findbugs:jsr305:3.0.2", "lang": "java", "sha1": "25ea2e8b0c338a877313bd4672d3fe056ea78f0d", "repository": "http://central.maven.org/maven2/", "name": "com_google_code_findbugs_jsr305", "actual": "@com_google_code_findbugs_jsr305//jar", "bind": "jar/com/google/code/findbugs/jsr305"},
    {"artifact": "com.google.errorprone:error_prone_annotations:2.1.3", "lang": "java", "sha1": "39b109f2cd352b2d71b52a3b5a1a9850e1dc304b", "repository": "http://central.maven.org/maven2/", "name": "com_google_errorprone_error_prone_annotations", "actual": "@com_google_errorprone_error_prone_annotations//jar", "bind": "jar/com/google/errorprone/error_prone_annotations"},
    {"artifact": "com.google.guava:guava:26.0-jre", "lang": "java", "sha1": "6a806eff209f36f635f943e16d97491f00f6bfab", "repository": "http://central.maven.org/maven2/", "name": "com_google_guava_guava", "actual": "@com_google_guava_guava//jar", "bind": "jar/com/google/guava/guava"},
    {"artifact": "com.google.j2objc:j2objc-annotations:1.1", "lang": "java", "sha1": "ed28ded51a8b1c6b112568def5f4b455e6809019", "repository": "http://central.maven.org/maven2/", "name": "com_google_j2objc_j2objc_annotations", "actual": "@com_google_j2objc_j2objc_annotations//jar", "bind": "jar/com/google/j2objc/j2objc_annotations"},
    {"artifact": "org.checkerframework:checker-qual:2.5.2", "lang": "java", "sha1": "cea74543d5904a30861a61b4643a5f2bb372efc4", "repository": "http://central.maven.org/maven2/", "name": "org_checkerframework_checker_qual", "actual": "@org_checkerframework_checker_qual//jar", "bind": "jar/org/checkerframework/checker_qual"},
    {"artifact": "org.codehaus.mojo:animal-sniffer-annotations:1.14", "lang": "java", "sha1": "775b7e22fb10026eed3f86e8dc556dfafe35f2d5", "repository": "http://central.maven.org/maven2/", "name": "org_codehaus_mojo_animal_sniffer_annotations", "actual": "@org_codehaus_mojo_animal_sniffer_annotations//jar", "bind": "jar/org/codehaus/mojo/animal_sniffer_annotations"},
    ]

And the workspace basically fails to load

bazel build 3rdparty/jvm/com/google/guava 
ERROR: "[REDACTED Project]/WORKSPACE:55:1: Traceback (most recent call last):
    File "[REDACTED Project]/WORKSPACE", line 55
        maven_dependencies()
    File "[REDACTED Project]/3rdparty/workspace.bzl", line 81, in maven_dependencies
        callback(hash)
    File "[REDACTED Project]/3rdparty/workspace.bzl", line 58, in callback
        jar_artifact(artifact = hash["artifact"], name ..."], <4 more arguments>)
    File "[REDACTED Project]/3rdparty/workspace.bzl", line 61, in jar_artifact
        hash["url"]
key "url" not found in dictionary
ERROR: Error evaluating WORKSPACE file
ERROR: Skipping '3rdparty/jvm/com/google/guava': error loading package 'external': Package 'external' contains errors
regisd commented 5 years ago

% bazel info release release 0.18.0

regisd commented 5 years ago

Digging into existing bugs, it could be a duplicate of #184

regisd commented 5 years ago

Yes, workaround is to add these options in dependencies.yml:

options:
  languages: ["java"]
  resolverType: "coursier"
johnynek commented 5 years ago

Yeah it seems aether is currently broken.

I’m very inclined to remove aether because it has other bugs we’ve found as well and requires new features to be written twice.