@@ -31,12 +31,14 @@ load(
3131load (
3232 "@io_bazel_rules_scala//scala:scala_cross_version.bzl" ,
3333 "default_maven_server_urls" ,
34+ "extract_major_version" ,
35+ "version_suffix" ,
3436)
3537load (
3638 "@io_bazel_rules_scala//scala:scala_maven_import_external.bzl" ,
3739 _scala_maven_import_external = "scala_maven_import_external" ,
3840)
39- load ("@io_bazel_rules_scala_config//:config.bzl" , "SCALA_MAJOR_VERSION" , " SCALA_VERSION" )
41+ load ("@io_bazel_rules_scala_config//:config.bzl" , "SCALA_VERSION" )
4042
4143artifacts_by_major_scala_version = {
4244 "2.11" : _artifacts_2_11 ,
@@ -57,31 +59,42 @@ scala_version_by_major_scala_version = {
5759}
5860
5961def repositories (
62+ scala_version = None ,
6063 for_artifact_ids = [],
6164 maven_servers = default_maven_server_urls (),
6265 overriden_artifacts = {},
6366 fetch_sources = True ,
6467 validate_scala_version = False ):
65- major_scala_version = SCALA_MAJOR_VERSION
68+ """
69+ Downloads given artifacts.
70+
71+ If `scala_version` is provided, artifacts will be downloaded for that Scala version.
72+ Also version-aware naming of repositories will be used (appending a suffix).
73+ Otherwise, the default Scala version is used and repository names have no suffix.
74+ """
75+
76+ suffix = version_suffix (scala_version ) if scala_version else ""
77+ scala_version = scala_version or SCALA_VERSION
78+ major_scala_version = extract_major_version (scala_version )
6679
6780 if validate_scala_version :
68- repository_scala_version = scala_version_by_major_scala_version [SCALA_MAJOR_VERSION ]
69- default_version_matches = SCALA_VERSION == repository_scala_version
81+ repository_scala_version = scala_version_by_major_scala_version [major_scala_version ]
82+ default_version_matches = scala_version == repository_scala_version
7083
7184 if not default_version_matches and len (overriden_artifacts ) == 0 :
7285 version_message = "Scala config (%s) version does not match repository version (%s)"
73- fail (version_message % (SCALA_VERSION , repository_scala_version ))
86+ fail (version_message % (scala_version , repository_scala_version ))
7487
7588 default_artifacts = artifacts_by_major_scala_version [major_scala_version ]
7689 artifacts = dict (default_artifacts .items () + overriden_artifacts .items ())
7790 for id in for_artifact_ids :
7891 _scala_maven_import_external (
79- name = id ,
92+ name = id + suffix ,
8093 artifact = artifacts [id ]["artifact" ],
8194 artifact_sha256 = artifacts [id ]["sha256" ],
8295 licenses = ["notice" ],
8396 server_urls = maven_servers ,
84- deps = artifacts [id ].get ("deps" , []),
97+ deps = [ dep + suffix for dep in artifacts [id ].get ("deps" , [])] ,
8598 runtime_deps = artifacts [id ].get ("runtime_deps" , []),
8699 testonly_ = artifacts [id ].get ("testonly" , False ),
87100 fetch_sources = fetch_sources ,
0 commit comments