1
1
// used to build Sonatype releases
2
- lazy val versionNumber = " 0.3.1 "
2
+ lazy val versionNumber = " 0.3.2 "
3
3
lazy val projectName = " big-data-types"
4
4
version := versionNumber
5
5
name := projectName
6
6
7
7
lazy val scala213 = " 2.13.5"
8
8
lazy val scala212 = " 2.12.12"
9
- lazy val scala211 = " 2.11.12 "
10
- lazy val supportedScalaVersions = List (scala213, scala212)
11
- scalaVersion := scala212
9
+ lazy val scala3 = " 3.0.0-RC2 "
10
+ lazy val supportedScalaVersions = List (scala3, scala213, scala212)
11
+ scalaVersion := scala213
12
12
13
- assemblyMergeStrategy in assembly := {
13
+ assembly / assemblyMergeStrategy := {
14
14
case PathList (" META-INF" , xs @ _* ) => MergeStrategy .discard
15
15
case x => MergeStrategy .first
16
16
}
@@ -29,19 +29,27 @@ lazy val publishSettings = Seq(
29
29
licenses := Seq (" APL2" -> url(" http://www.apache.org/licenses/LICENSE-2.0.txt" )),
30
30
publishMavenStyle := true
31
31
)
32
- lazy val noPublishSettings =
33
- skip in publish := true
32
+
33
+ lazy val noPublishSettings = {
34
+ publish / skip := true
35
+ }
34
36
35
37
publishSettings
36
38
37
39
// Dependencies
38
- lazy val coreDependencies = Seq (
40
+ lazy val coreDependencies2 = Seq (
39
41
" ch.qos.logback" % " logback-classic" % " 1.2.3" ,
40
42
" org.clapper" %% " grizzled-slf4j" % " 1.3.4" ,
41
43
" com.chuusai" %% " shapeless" % " 2.3.3" ,
42
44
scalatest % Test
43
45
)
44
46
47
+ lazy val coreDependencies3 = Seq (
48
+ " ch.qos.logback" % " logback-classic" % " 1.2.3" ,
49
+ " org.clapper" % " grizzled-slf4j_2.13" % " 1.3.4" ,
50
+ scalatest % Test
51
+ )
52
+
45
53
lazy val bigqueryDependencies = Seq (
46
54
" com.google.cloud" % " google-cloud-bigquery" % " 1.127.11" ,
47
55
scalatest % " it,test"
@@ -57,7 +65,7 @@ lazy val scalatest = "org.scalatest" %% "scalatest" % "3.2.7"
57
65
// Project settings
58
66
lazy val root = (project in file(" ." ))
59
67
.configs(IntegrationTest )
60
- .settings(noPublishSettings)
68
+ .settings(noPublishSettings, crossScalaVersions := Nil )
61
69
.aggregate(
62
70
core,
63
71
bigquery,
@@ -69,8 +77,15 @@ lazy val core = (project in file("core")).settings(
69
77
name := projectName + " -core" ,
70
78
publishSettings,
71
79
crossScalaVersions := supportedScalaVersions,
72
- crossVersionSharedSources,
73
- libraryDependencies ++= coreDependencies
80
+ crossVersionSharedSourcesScala3, // different one for Scala 2 or 3
81
+ // for Scala 2 or 3
82
+ libraryDependencies ++= {
83
+ CrossVersion .partialVersion(scalaVersion.value) match {
84
+ case Some ((2 , _)) => coreDependencies2
85
+ case Some ((3 , _)) => coreDependencies3
86
+ case _ => Nil
87
+ }
88
+ }
74
89
)
75
90
76
91
lazy val bigquery = (project in file(" bigquery" ))
@@ -79,7 +94,7 @@ lazy val bigquery = (project in file("bigquery"))
79
94
name := projectName + " -bigquery" ,
80
95
publishSettings,
81
96
Defaults .itSettings,
82
- crossScalaVersions := supportedScalaVersions ,
97
+ crossScalaVersions := List (scala212, scala213) ,
83
98
crossVersionSharedSources,
84
99
libraryDependencies ++= bigqueryDependencies
85
100
)
@@ -112,18 +127,31 @@ lazy val examples = (project in file("examples"))
112
127
)
113
128
.dependsOn(spark % " test->test;compile->compile" )
114
129
115
-
116
-
117
130
lazy val crossVersionSharedSources : Seq [Setting [_]] =
118
131
Seq (Compile , Test ).map { sc =>
119
- (unmanagedSourceDirectories in sc ) ++= {
120
- (unmanagedSourceDirectories in sc ).value.flatMap { dir : File =>
132
+ (sc / unmanagedSourceDirectories ) ++= {
133
+ (sc / unmanagedSourceDirectories ).value.flatMap { dir : File =>
121
134
if (dir.getName != " scala" ) Seq (dir)
122
135
else
123
136
CrossVersion .partialVersion(scalaVersion.value) match {
137
+ case Some ((3 , _)) => Seq (new File (dir.getPath + " _3" ))
124
138
case Some ((2 , y)) if y >= 13 => Seq (new File (dir.getPath + " _2.13+" ))
125
139
case Some ((2 , y)) if y >= 11 => Seq (new File (dir.getPath + " _2.13-" ))
126
140
}
127
141
}
128
142
}
129
143
}
144
+
145
+ lazy val crossVersionSharedSourcesScala3 : Seq [Setting [_]] =
146
+ Seq (Compile , Test ).map { sc =>
147
+ (sc / unmanagedSourceDirectories) ++= {
148
+ (sc / unmanagedSourceDirectories).value.flatMap { dir : File =>
149
+ if (dir.getName != " scala" ) Seq (dir)
150
+ else
151
+ CrossVersion .partialVersion(scalaVersion.value) match {
152
+ case Some ((3 , _)) => Seq (new File (dir.getPath + " _3" ))
153
+ case Some ((2 , _)) => Seq (new File (dir.getPath + " _2" ))
154
+ }
155
+ }
156
+ }
157
+ }
0 commit comments