1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
load("//tools/build_defs/scala:scala.bzl", "scala_binary", "scala_library", "scala_test")
# The examples below show how to combine Scala and Java rules.
# ScalaBinary is the Scala equivalent of JavaBinary.
java_binary(
name = "JavaBinary",
srcs = ["JavaBinary.java"],
main_class = "scala.test.JavaBinary",
deps = [":lib_import"],
)
# TODO(bazel-team): Allow java rules to depend directly on scala_library.
# For now, we have to use a java_import proxy.
java_import(
name = "lib_import",
jars = [":HelloLib_deploy.jar"],
)
scala_binary(
name = "ScalaBinary",
srcs = ["ScalaBinary.scala"],
main_class = "scala.test.ScalaBinary",
deps = [":HelloLib"],
)
scala_library(
name = "HelloLib",
srcs = ["HelloLib.scala"],
deps = [
"OtherJavaLib",
"OtherLib",
],
)
scala_test(
name = "HelloLibTest",
size = "small", # Not a macro, can pass test-specific attributes.
srcs = ["HelloLibTest.scala"],
suites = [
"scala.test.ScalaSuite",
"scala.test.JavaSuite",
],
deps = [
":HelloLib",
],
)
scala_library(
name = "OtherLib",
srcs = ["OtherLib.scala"],
exports = ["Exported"], # test of exported target
)
scala_library(
name = "Exported",
srcs = ["Exported.scala"],
runtime_deps = ["Runtime"],
)
scala_library(
name = "Runtime",
srcs = ["Runtime.scala"],
)
java_library(
name = "OtherJavaLib",
srcs = ["OtherJavaLib.java"],
)
scala_library(
name = "ScalaLibResources",
srcs = ["src/main/scala/scala/test/ScalaLibResources.scala"],
resources = ["src/main/resources/scala/test/hellos"],
)
scala_binary(
name = "ScalaLibBinary",
srcs = ["src/main/scala/scala/test/ScalaLibBinary.scala"],
main_class = "scala.test.ScalaLibBinary",
deps = ["ScalaLibResources"],
)
|