Skip to content

Commit 76d4ab9

Browse files
jhnjjohnynek
authored andcommitted
Add scala-xml and scala-parser-combinators jars individually (#549)
* Add scala-xml and scala-parser-combinators individually - Update aspect test with new labels * Download scalalib, compiler and reflect as jars * Download jars using http_file, import using scala_import * Use * Run linter * Remove https from maven url * Correct artifacts * Add DefaultInfo provider to outputs of scala_import * maven_servers as parameter * Prefix scala_repositories labels with io_bazel_rules_scala
1 parent 6769652 commit 76d4ab9

File tree

3 files changed

+74
-66
lines changed

3 files changed

+74
-66
lines changed

scala/scala.bzl

Lines changed: 64 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,18 @@ load(
1010

1111
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
1212

13+
load(
14+
"@io_bazel_rules_scala//scala:scala_maven_import_external.bzl",
15+
_scala_maven_import_external = "scala_maven_import_external")
16+
1317
load(
1418
"@io_bazel_rules_scala//specs2:specs2_junit.bzl",
1519
_specs2_junit_dependencies = "specs2_junit_dependencies")
1620

21+
load(
22+
"@io_bazel_rules_scala//scala:scala_import.bzl",
23+
_scala_import = "scala_import")
24+
1725
_launcher_template = {
1826
"_java_stub_template": attr.label(
1927
default = Label("@java_stub_template//file")),
@@ -249,56 +257,56 @@ scala_repl = rule(
249257
toolchains = ['@io_bazel_rules_scala//scala:toolchain_type'],
250258
)
251259

252-
_SCALA_BUILD_FILE = """
253-
# scala.BUILD
254-
java_import(
255-
name = "scala-xml",
256-
jars = ["lib/scala-xml_2.11-1.0.5.jar"],
257-
visibility = ["//visibility:public"],
258-
)
259-
260-
java_import(
261-
name = "scala-parser-combinators",
262-
jars = ["lib/scala-parser-combinators_2.11-1.0.4.jar"],
263-
visibility = ["//visibility:public"],
264-
)
265-
266-
java_import(
267-
name = "scala-library",
268-
jars = ["lib/scala-library.jar"],
269-
visibility = ["//visibility:public"],
270-
)
271-
272-
java_import(
273-
name = "scala-compiler",
274-
jars = ["lib/scala-compiler.jar"],
275-
visibility = ["//visibility:public"],
276-
)
277-
278-
java_import(
279-
name = "scala-reflect",
280-
jars = ["lib/scala-reflect.jar"],
281-
visibility = ["//visibility:public"],
282-
)
283-
"""
260+
def scala_repositories(maven_servers = ["http://central.maven.org/maven2"]):
261+
_scala_maven_import_external(
262+
name = "io_bazel_rules_scala_scala_library",
263+
artifact = "org.scala-lang:scala-library:2.11.12",
264+
jar_sha256 =
265+
"0b3d6fd42958ee98715ba2ec5fe221f4ca1e694d7c981b0ae0cd68e97baf6dce",
266+
licenses = ["notice"],
267+
server_urls = maven_servers,
268+
)
269+
_scala_maven_import_external(
270+
name = "io_bazel_rules_scala_scala_compiler",
271+
artifact = "org.scala-lang:scala-compiler:2.11.12",
272+
jar_sha256 =
273+
"3e892546b72ab547cb77de4d840bcfd05c853e73390fed7370a8f19acb0735a0",
274+
licenses = ["notice"],
275+
server_urls = maven_servers,
276+
)
277+
_scala_maven_import_external(
278+
name = "io_bazel_rules_scala_scala_reflect",
279+
artifact = "org.scala-lang:scala-reflect:2.11.12",
280+
jar_sha256 =
281+
"6ba385b450a6311a15c918cf8688b9af9327c6104f0ecbd35933cfcd3095fe04",
282+
licenses = ["notice"],
283+
server_urls = maven_servers,
284+
)
285+
_scala_maven_import_external(
286+
name = "io_bazel_rules_scala_scalatest",
287+
artifact = "org.scalatest:scalatest_2.11:2.2.6",
288+
jar_sha256 =
289+
"f198967436a5e7a69cfd182902adcfbcb9f2e41b349e1a5c8881a2407f615962",
290+
licenses = ["notice"],
291+
server_urls = maven_servers,
292+
)
284293

285-
def scala_repositories():
286-
native.new_http_archive(
287-
name = "scala",
288-
strip_prefix = "scala-2.11.12",
289-
sha256 =
290-
"b11d7d33699ca4f60bc3b2b6858fd953e3de2b8522c943f4cda4b674316196a8",
291-
url = "http://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.tgz",
292-
build_file_content = _SCALA_BUILD_FILE,
294+
_scala_maven_import_external(
295+
name = "io_bazel_rules_scala_scala_xml",
296+
artifact = "org.scala-lang.modules:scala-xml_2.11:1.0.5",
297+
jar_sha256 =
298+
"767e11f33eddcd506980f0ff213f9d553a6a21802e3be1330345f62f7ee3d50f",
299+
licenses = ["notice"],
300+
server_urls = maven_servers,
293301
)
294302

295-
# scalatest has macros, note http_jar is invoking ijar
296-
native.http_jar(
297-
name = "scalatest",
298-
url =
299-
"https://mirror.bazel.build/oss.sonatype.org/content/groups/public/org/scalatest/scalatest_2.11/2.2.6/scalatest_2.11-2.2.6.jar",
300-
sha256 =
301-
"f198967436a5e7a69cfd182902adcfbcb9f2e41b349e1a5c8881a2407f615962",
303+
_scala_maven_import_external(
304+
name = "io_bazel_rules_scala_scala_parser_combinators",
305+
artifact = "org.scala-lang.modules:scala-parser-combinators_2.11:1.0.4",
306+
jar_sha256 =
307+
"0dfaafce29a9a245b0a9180ec2c1073d2bd8f0330f03a9f1f6a74d1bc83f62d6",
308+
licenses = ["notice"],
309+
server_urls = maven_servers,
302310
)
303311

304312
native.maven_server(
@@ -347,29 +355,29 @@ def scala_repositories():
347355
name = "io_bazel_rules_scala/dependency/commons_io/commons_io",
348356
actual = "@scalac_rules_commons_io//jar")
349357

350-
native.bind(
351-
name = "io_bazel_rules_scala/dependency/scala/parser_combinators",
352-
actual = "@scala//:scala-parser-combinators")
353-
354358
native.bind(
355359
name = "io_bazel_rules_scala/dependency/scala/scala_compiler",
356-
actual = "@scala//:scala-compiler")
360+
actual = "@io_bazel_rules_scala_scala_compiler")
357361

358362
native.bind(
359363
name = "io_bazel_rules_scala/dependency/scala/scala_library",
360-
actual = "@scala//:scala-library")
364+
actual = "@io_bazel_rules_scala_scala_library")
361365

362366
native.bind(
363367
name = "io_bazel_rules_scala/dependency/scala/scala_reflect",
364-
actual = "@scala//:scala-reflect")
368+
actual = "@io_bazel_rules_scala_scala_reflect")
365369

366370
native.bind(
367371
name = "io_bazel_rules_scala/dependency/scala/scala_xml",
368-
actual = "@scala//:scala-xml")
372+
actual = "@io_bazel_rules_scala_scala_xml")
373+
374+
native.bind(
375+
name = "io_bazel_rules_scala/dependency/scala/parser_combinators",
376+
actual = "@io_bazel_rules_scala_scala_parser_combinators")
369377

370378
native.bind(
371379
name = "io_bazel_rules_scala/dependency/scalatest/scalatest",
372-
actual = "@scalatest//jar")
380+
actual = "@io_bazel_rules_scala_scalatest")
373381

374382
def _sanitize_string_for_usage(s):
375383
res_array = []

test/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ java_binary(
2626
main_class = "scalarules.test.JavaBinary",
2727
runtime_deps = [
2828
":OtherJavaLib",
29-
"@scala//:scala-library",
29+
"@io_bazel_rules_scala_scala_library//jar",
3030
],
3131
deps = [
3232
":Exported",

test/aspect/aspect.bzl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,30 +23,30 @@ def _rule_impl(ctx):
2323
expected_deps = {
2424
"scala_library": [
2525
"//test/aspect:scala_library",
26-
"@scala//:scala-library",
26+
"@io_bazel_rules_scala_scala_library//:io_bazel_rules_scala_scala_library",
2727
],
2828
"scala_test": [
2929
"//test/aspect:scala_test",
30-
"@scala//:scala-library",
31-
"@scalatest//jar:jar",
30+
"@io_bazel_rules_scala_scala_library//:io_bazel_rules_scala_scala_library",
31+
"@io_bazel_rules_scala_scalatest//:io_bazel_rules_scala_scalatest",
3232
],
3333
"scala_junit_test": [
3434
"//test/aspect:scala_junit_test",
35-
"@scala//:scala-library",
35+
"@io_bazel_rules_scala_scala_library//:io_bazel_rules_scala_scala_library",
3636
"@io_bazel_rules_scala_junit_junit//jar:jar",
3737
"@io_bazel_rules_scala_org_hamcrest_hamcrest_core//jar:jar",
3838
],
3939
"scala_specs2_junit_test": [
4040
"//test/aspect:scala_specs2_junit_test",
41-
"@scala//:scala-library",
41+
"@io_bazel_rules_scala_scala_library//:io_bazel_rules_scala_scala_library",
4242
"@io_bazel_rules_scala_junit_junit//jar:jar",
4343
"@io_bazel_rules_scala_org_hamcrest_hamcrest_core//jar:jar",
4444
# From specs2/specs2.bzl:specs2_dependencies()
4545
"@io_bazel_rules_scala//specs2:specs2",
46-
"@scala//:scala-xml",
47-
"@scala//:scala-parser-combinators",
48-
"@scala//:scala-library",
49-
"@scala//:scala-reflect",
46+
"@io_bazel_rules_scala_scala_xml//:io_bazel_rules_scala_scala_xml",
47+
"@io_bazel_rules_scala_scala_parser_combinators//:io_bazel_rules_scala_scala_parser_combinators",
48+
"@io_bazel_rules_scala_scala_library//:io_bazel_rules_scala_scala_library",
49+
"@io_bazel_rules_scala_scala_reflect//:io_bazel_rules_scala_scala_reflect",
5050
# From specs2/specs2_junit.bzl:specs2_junit_dependencies()
5151
"@io_bazel_rules_scala_org_specs2_specs2_junit_2_11//jar:jar",
5252
],

0 commit comments

Comments
 (0)