bazel-contrib / rules_jvm_external

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

Errors while updating from 2.5 to 2.6 #218

Closed natros closed 5 years ago

natros commented 5 years ago

Hi,

$ bazelisk clean --expugne
$ bazelisk info
Starting local Bazel server and connecting to it...
bazel-bin: /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/execroot/demos/bazel-out/darwin-fastbuild/bin
bazel-genfiles: /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/execroot/demos/bazel-out/darwin-fastbuild/bin
bazel-testlogs: /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/execroot/demos/bazel-out/darwin-fastbuild/testlogs
character-encoding: file.encoding = ISO-8859-1, defaultCharset = ISO-8859-1
command_log: /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/command.log
committed-heap-size: 257MB
execution_root: /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/execroot/demos
gc-count: 3
gc-time: 28ms
install_base: /var/tmp/_bazel_fsousa/install/8772b695a4a7b498a4dd3eff54505d9c
java-home: /private/var/tmp/_bazel_fsousa/install/8772b695a4a7b498a4dd3eff54505d9c/_embedded_binaries/embedded_tools/jdk
java-runtime: OpenJDK Runtime Environment (build 11.0.2+7-LTS) by Azul Systems, Inc.
java-vm: OpenJDK 64-Bit Server VM (build 11.0.2+7-LTS, mixed mode) by Azul Systems, Inc.
max-heap-size: 3817MB
output_base: /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c
output_path: /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/execroot/demos/bazel-out
package_path: %workspace%
release: release 0.28.1
repository_cache: /var/tmp/_bazel_fsousa/cache/repos/v1
server_log: /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/java.log.nostradamus.fsousa.log.java.20190806-153858.8951
server_pid: 8951
used-heap-size: 70MB
workspace: /Users/fsousa/Projects/demo/demos
$ bazelisk build //...
INFO: Call stack for the definition of repository 'gwtsrc' which is a coursier_fetch (rule definition at /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/external/rules_jvm_external/coursier.bzl:852:18):
 - /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/external/rules_jvm_external/defs.bzl:83:5
 - /Users/fsousa/Projects/demo/demos/WORKSPACE:143:1
INFO: Repository 'gwtsrc' used the following cache hits instead of downloading the corresponding file.
 * Hash '2311054a07f5e8d83766155744e139e7a4b2ee1e77d47a636839687c4233a465' for https://jcenter.bintray.com/io/get-coursier/coursier-cli_2.12/1.1.0-M14-4/coursier-cli_2.12-1.1.0-M14-4-standalone.jar
If the definition of 'gwtsrc' was updated, verify that the hashes were also updated.
ERROR: An error occurred during the fetch of repository 'gwtsrc':
   local variable 'primary_artifact_path' is referenced before assignment.
INFO: Call stack for the definition of repository 'gwt' which is a coursier_fetch (rule definition at /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/external/rules_jvm_external/coursier.bzl:852:18):
 - /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/external/rules_jvm_external/defs.bzl:83:5
 - /Users/fsousa/Projects/demo/demos/WORKSPACE:112:1
INFO: Call stack for the definition of repository 'remote_java_tools_darwin' which is a http_archive (rule definition at /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/external/bazel_tools/tools/build_defs/repo/http.bzl:237:16):
 - /DEFAULT.WORKSPACE.SUFFIX:255:1
INFO: Call stack for the definition of repository 'maven' which is a coursier_fetch (rule definition at /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/external/rules_jvm_external/coursier.bzl:852:18):
 - /private/var/tmp/_bazel_fsousa/5eb111cf39e94839e993e7dc498f4d7c/external/rules_jvm_external/defs.bzl:83:5
 - /Users/fsousa/Projects/demo/demos/WORKSPACE:42:1
ERROR: /Users/fsousa/Projects/demo/demos/java/pt/ipb/demo/gwt/app/BUILD.bazel:15:1: //java/pt/ipb/demo/gwt/app:gwt-deps depends on @gwtsrc//:com_google_jsinterop_jsinterop_annotations in repository @gwtsrc which failed to fetch. no such package '@gwtsrc//': local variable 'primary_artifact_path' is referenced before assignment.
ERROR: /Users/fsousa/Projects/demo/demos/java/pt/ipb/demo/gwt/app/BUILD.bazel:15:1: //java/pt/ipb/demo/gwt/app:gwt-deps depends on @gwtsrc//:javax_validation_validation_api in repository @gwtsrc which failed to fetch. no such package '@gwtsrc//': local variable 'primary_artifact_path' is referenced before assignment.
ERROR: Analysis of target '//java/pt/ipb/demo/gwt/app:gwt-deps' failed; build aborted: no such package '@gwtsrc//': local variable 'primary_artifact_path' is referenced before assignment.
INFO: Elapsed time: 5.716s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (113 packages loaded, 196 targets configured)
    Fetching @remotejdk11_macos; fetching 4s
    Fetching @local_config_xcode; fetching

In my WORKSPACE I have this:

RULES_JVM_EXTERNAL_TAG = "2.6"

RULES_JVM_EXTERNAL_SHA = "064b9085b21c349c8bd8be015a73efd6226dd2ff7d474797b3507ceca29544bb"

http_archive(
    name = "rules_jvm_external",
    sha256 = RULES_JVM_EXTERNAL_SHA,
    strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
    url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)

load("@rules_jvm_external//:defs.bzl", "maven_install")
load(
    "//:artifacts.bzl",
    "AUTO_FACTORY_ARTIFACTS",
    "AUTO_SERVICE_ARTIFACTS",
    "AUTO_VALUE_ARTIFACTS",
    "FLOGGER_ARTIFACTS",
    "GUICE_ARTIFACTS",
    "JACKSON_ARTIFACTS",
    "JAKARTA_ARTIFACTS",
    "MAPSTRUCT_ARTIFACTS",
    "QUERYDSL_ARTIFACTS",
    "RETROFIT_ARTIFACTS",
    "SLF4J_ARTIFACTS",
    "TRUTH_ARTIFACTS",
)

MAVEN_REPOSITORIES = [
    "<private_repo_with_basic_auth>",
    "https://repo1.maven.org/maven2",
    "https://maven.google.com",
]

maven_install(
    artifacts =
        JACKSON_ARTIFACTS +
        FLOGGER_ARTIFACTS +
        GUICE_ARTIFACTS +
        JAKARTA_ARTIFACTS +
        RETROFIT_ARTIFACTS +
        MAPSTRUCT_ARTIFACTS +
        SLF4J_ARTIFACTS +
        TRUTH_ARTIFACTS +
        AUTO_SERVICE_ARTIFACTS +
        AUTO_VALUE_ARTIFACTS +
        AUTO_FACTORY_ARTIFACTS +
        QUERYDSL_ARTIFACTS + [
            "com.github.dexecutor:dexecutor-core:2.1.0",
            "com.google.dagger:dagger-compiler:2.24",
            "com.google.guava:guava:28.0-jre",
            "com.h2database:h2:jar:1.4.199",
            "com.sparkjava:spark-core:2.9.1",
            "com.squareup.okhttp3:logging-interceptor:3.12.2",
            "javax.servlet:javax.servlet-api:3.1.0",
            "javax.validation:validation-api:jar:2.0.1.Final",
            "net.dongliu:gson-java8-datatype:1.1.0",
            "ognl:ognl:jar:3.1.24",
            "one.util:streamex:0.6.8",
            "org.apache.commons:commons-lang3:3.8.1",
            "org.flowable:flowable-engine:jar:6.4.1",
            "org.hashids:hashids:jar:1.0.3",
            "org.jboss.weld.se:weld-se-core:jar:3.1.1.Final",
            "org.jboss:jandex:2.1.1.Final",
            "org.jetbrains:annotations:17.0.0",
            "org.jooq:jool-java-8:0.9.14",
            "org.mockito:mockito-core:2.27.0",
            "net.jodah:failsafe:2.0.1",
            "info.picocli:picocli-codegen:4.0.1",
            "info.picocli:picocli:4.0.1",
        ],
    excluded_artifacts = [
        "com.mchange:c3p0",
        "com.sun.mail:javax.mail",
        "com.zaxxer:HikariCP-java6",
        "com.zaxxer:HikariCP-java7",
        "commons-logging:commons-logging",
        "javax.activation:activation",
        "javax.activation:javax-activation-api",
        "javax.annotation:javax.annotation",
        "javax.interceptor:javax.interceptor-api",
        "javax.mail:javax.mail-api",
        "javax.persistence:javax.persistence-api",
        "javax.transaction:javax.transaction-api",
        "javax.ws.rs:javax.ws.rs-api",
        "javax.ws.rs:jsr311-api",
        "javax.xml.bind:jaxb-api",
        "javax.xml.ws:jaxws-api",
        "javax:javaee-api",
        "log4j:log4j",
        "org.glassfish:javax.el",
        "org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec",
        "org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.2_spec",
        "org.jboss.spec.javax.servlet:jboss-servlet-api_3.1_spec",
        "org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec",
        "org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec",
        "org.slf4j:slf4j-jdk14",
        "org.slf4j:slf4j-log4j12",
        "org.springframework:spring-jcl",
    ],
    fetch_sources = True,
    repositories = MAVEN_REPOSITORIES,
)

maven_install(
    name = "gwt",
    artifacts = [
        "com.google.dagger:dagger-gwt:2.24",
        "com.google.guava:guava-gwt:28.0-jre",
        "com.google.gwt:gwt-dev:2.8.2-20190719",
        "com.google.gwt:gwt-user:2.8.2-20190719",
        "com.google.jsinterop:jsinterop-annotations:1.0.2-20190330",
        "javax.validation:validation-api:1.0.0.GA",
        "net.ltgt.gwt:gwt-places:1.0.0",
        "org.eclipse.jetty:jetty-annotations:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-http:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-io:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-jndi:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-plus:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-security:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-server:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-servlet:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-servlets:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-util:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-webapp:9.2.20.v20161216",
        "org.eclipse.jetty:jetty-xml:9.2.20.v20161216",
        "org.fusesource.restygwt:restygwt:2.2.4",
        "org.jboss.gwt.elemento:elemento-core:0.9.0-gwt2",
        "org.jboss.gwt.elemento:elemento-widget:0.9.0-gwt2",
        "org.ow2.asm:asm:7.1",
    ],
    fetch_sources = True,
    repositories = MAVEN_REPOSITORIES,
)

maven_install(
    name = "gwtsrc",
    artifacts = [
        "com.google.jsinterop:jsinterop-annotations:jar:sources:1.0.2-20190330",
        "javax.validation:validation-api:jar:sources:1.0.0.GA",
    ],
    repositories = MAVEN_REPOSITORIES,
)

It works with 2.5 but not 2.6.

jin commented 5 years ago

Managed to reproduce this with a private repository:

maven_install(
    name = "gwtsrc",
    artifacts = [
        "com.google.jsinterop:jsinterop-annotations:jar:sources:1.0.2",
        "javax.validation:validation-api:jar:sources:1.0.0.GA",
    ],
    repositories = [
        "http://admin:password@localhost:8081/artifactory/jcenter",
    ],
    fail_on_missing_checksum = False,
)
jin commented 5 years ago

Fix is at https://github.com/bazelbuild/rules_jvm_external/issues/218