From 2e5a9c8b525146b80563b3bba9b2f644b0ec9d81 Mon Sep 17 00:00:00 2001 From: Simon Stewart Date: Wed, 18 Nov 2020 13:53:06 +0000 Subject: [PATCH] Introduce a deps and a setup macro (#481) This allows us to pull in dependencies that we may need to ensure that rules_jvm_external functions. At present, this is a no-op. --- README.md | 16 ++++++++++++++++ WORKSPACE | 16 ++++++++++++---- repositories.bzl | 16 ++++++++++++++++ rules_jvm_external_deps_install.json | 9 +++++++++ setup.bzl | 4 ++++ 5 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 repositories.bzl create mode 100644 rules_jvm_external_deps_install.json create mode 100644 setup.bzl diff --git a/README.md b/README.md index 06b7c25c..01f9e4b1 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,14 @@ http_archive( url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG, ) +load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() + load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( @@ -98,6 +106,14 @@ or environment variables. See the [Coursier documentation](https://get-coursier.io/docs/other-credentials.html#property-file) for more information. +`rules_jvm_external_setup` uses a default list of maven repositories to download + `rules_jvm_external`'s own dependencies from. Should you wish to change this, + use the `repositories` parameter: + + ```python +rules_jvm_external_setup(repositories = ["https://mycorp.com/artifacts"]) +``` + Next, reference the artifacts in the BUILD file with their versionless label: ```python diff --git a/WORKSPACE b/WORKSPACE index 40884510..6677df24 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -51,8 +51,20 @@ http_archive( # dependencies. So, we omit them to keep the WORKSPACE file simpler. # https://skydoc.bazel.build/docs/getting_started_stardoc.html +load("//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() + +# Begin test dependencies + load("//:defs.bzl", "maven_install") +load("//:specs.bzl", "maven") + maven_install( name = "outdated", artifacts = [ @@ -63,10 +75,6 @@ maven_install( ], ) -# Begin test dependencies - -load("//:specs.bzl", "maven") - maven_install( artifacts = [ "com.google.guava:guava:27.0-jre", diff --git a/repositories.bzl b/repositories.bzl new file mode 100644 index 00000000..b03bbd34 --- /dev/null +++ b/repositories.bzl @@ -0,0 +1,16 @@ +load("//:defs.bzl", "maven_install") + +_DEFAULT_REPOSITORIES = [ + "https://repo1.maven.org/maven2", + "https://jcenter.bintray.com/", + "https://maven.google.com", +] + +def rules_jvm_external_deps(repositories = _DEFAULT_REPOSITORIES): + maven_install( + name = "rules_jvm_external_deps", + artifacts = [ + ], + maven_install_json = "@rules_jvm_external//:rules_jvm_external_deps_install.json", + repositories = repositories, + ) diff --git a/rules_jvm_external_deps_install.json b/rules_jvm_external_deps_install.json new file mode 100644 index 00000000..642d3e11 --- /dev/null +++ b/rules_jvm_external_deps_install.json @@ -0,0 +1,9 @@ +{ + "dependency_tree": { + "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": 2914, + "conflict_resolution": {}, + "dependencies": [ + ], + "version": "0.1.0" + } +} diff --git a/setup.bzl b/setup.bzl new file mode 100644 index 00000000..db71070c --- /dev/null +++ b/setup.bzl @@ -0,0 +1,4 @@ +load("@rules_jvm_external_deps//:defs.bzl", "pinned_maven_install") + +def rules_jvm_external_setup(): + pinned_maven_install()