@@ -31,12 +31,14 @@ load(
31
31
load (
32
32
"@io_bazel_rules_scala//scala:scala_cross_version.bzl" ,
33
33
"default_maven_server_urls" ,
34
+ "extract_major_version" ,
35
+ "version_suffix" ,
34
36
)
35
37
load (
36
38
"@io_bazel_rules_scala//scala:scala_maven_import_external.bzl" ,
37
39
_scala_maven_import_external = "scala_maven_import_external" ,
38
40
)
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" )
40
42
41
43
artifacts_by_major_scala_version = {
42
44
"2.11" : _artifacts_2_11 ,
@@ -57,31 +59,42 @@ scala_version_by_major_scala_version = {
57
59
}
58
60
59
61
def repositories (
62
+ scala_version = None ,
60
63
for_artifact_ids = [],
61
64
maven_servers = default_maven_server_urls (),
62
65
overriden_artifacts = {},
63
66
fetch_sources = True ,
64
67
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 )
66
79
67
80
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
70
83
71
84
if not default_version_matches and len (overriden_artifacts ) == 0 :
72
85
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 ))
74
87
75
88
default_artifacts = artifacts_by_major_scala_version [major_scala_version ]
76
89
artifacts = dict (default_artifacts .items () + overriden_artifacts .items ())
77
90
for id in for_artifact_ids :
78
91
_scala_maven_import_external (
79
- name = id ,
92
+ name = id + suffix ,
80
93
artifact = artifacts [id ]["artifact" ],
81
94
artifact_sha256 = artifacts [id ]["sha256" ],
82
95
licenses = ["notice" ],
83
96
server_urls = maven_servers ,
84
- deps = artifacts [id ].get ("deps" , []),
97
+ deps = [ dep + suffix for dep in artifacts [id ].get ("deps" , [])] ,
85
98
runtime_deps = artifacts [id ].get ("runtime_deps" , []),
86
99
testonly_ = artifacts [id ].get ("testonly" , False ),
87
100
fetch_sources = fetch_sources ,
0 commit comments