-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.sbt
More file actions
76 lines (65 loc) · 2.35 KB
/
build.sbt
File metadata and controls
76 lines (65 loc) · 2.35 KB
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
name := "spark-etl-framework"
version := "0.1.0"
scalaVersion := "2.12.18"
val sparkVersion = "3.5.8"
val icebergVersion = "1.5.0"
val scalaTestVersion = "3.2.19"
val scalaCheckVersion = "1.19.0"
val json4sVersion = "3.7.0-M11"
libraryDependencies ++= Seq(
// Spark dependencies
"org.apache.spark" %% "spark-core" % sparkVersion % "provided",
"org.apache.spark" %% "spark-sql" % sparkVersion % "provided",
// Iceberg table format
"org.apache.iceberg" % "iceberg-spark-runtime-3.5_2.12" % icebergVersion,
// Configuration loading with YAML support (supports case class defaults natively)
"com.github.pureconfig" %% "pureconfig" % "0.17.4",
"com.github.pureconfig" %% "pureconfig-yaml" % "0.17.4",
// JSON serialization for metadata
"org.json4s" %% "json4s-jackson" % json4sVersion,
// Logging
"org.slf4j" % "slf4j-api" % "2.0.17",
"ch.qos.logback" % "logback-classic" % "1.4.14",
// Testing
"org.scalatest" %% "scalatest" % scalaTestVersion % Test,
"org.scalacheck" %% "scalacheck" % scalaCheckVersion % Test,
"org.scalatestplus" %% "scalacheck-1-17" % "3.2.18.0" % Test
)
// Compiler options
scalacOptions ++= Seq(
"-deprecation",
"-encoding",
"UTF-8",
"-feature",
"-unchecked",
"-Xlint:_",
"-Ywarn-dead-code",
"-Ywarn-numeric-widen",
"-Ywarn-value-discard",
"-Ywarn-unused:imports",
"-Ywarn-unused:locals",
"-Ywarn-unused:privates"
)
// Test options
Test / parallelExecution := false
Test / fork := true
Test / javaOptions ++= Seq(
"-Xmx2G",
// Java 17+ module access for Spark
"--add-opens=java.base/java.lang=ALL-UNNAMED",
"--add-opens=java.base/java.lang.invoke=ALL-UNNAMED",
"--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
"--add-opens=java.base/java.io=ALL-UNNAMED",
"--add-opens=java.base/java.net=ALL-UNNAMED",
"--add-opens=java.base/java.nio=ALL-UNNAMED",
"--add-opens=java.base/java.util=ALL-UNNAMED",
"--add-opens=java.base/java.util.concurrent=ALL-UNNAMED",
"--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED",
"--add-opens=java.base/sun.nio.ch=ALL-UNNAMED",
"--add-opens=java.base/sun.nio.cs=ALL-UNNAMED",
"--add-opens=java.base/sun.security.action=ALL-UNNAMED",
"--add-opens=java.base/sun.util.calendar=ALL-UNNAMED",
"--add-exports=java.base/sun.nio.ch=ALL-UNNAMED",
"--add-exports=java.base/sun.nio.ch=ALL-UNNAMED",
"--add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
)