forked from Qbeast-io/qbeast-spark
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sbt
107 lines (93 loc) · 3.27 KB
/
build.sbt
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import Dependencies._
lazy val qbeastCore = (project in file("core"))
.settings(name := "qbeast-core", libraryDependencies ++= Seq(apacheCommons % Test))
// Projects
lazy val qbeastSpark = (project in file("."))
.dependsOn(qbeastCore)
.settings(
name := "qbeast-spark",
libraryDependencies ++= Seq(
sparkCore % Provided,
sparkSql % Provided,
hadoopClient % Provided,
deltaCore % Provided,
amazonAws % Test,
hadoopCommons % Test,
hadoopAws % Test),
Test / parallelExecution := false,
assembly / test := {},
assembly / assemblyOption := (assembly / assemblyOption).value.copy(includeScala = false),
publish / skip := true)
.settings(noWarningInConsole)
lazy val qbeastSparkNodep = (project in file("nodep"))
.settings(name := "qbeast-spark-nodep", Compile / packageBin := (qbeastSpark / assembly).value)
// Common metadata
ThisBuild / version := "0.2.0"
ThisBuild / organization := "io.qbeast"
ThisBuild / organizationName := "Qbeast Analytics, S.L."
ThisBuild / organizationHomepage := Some(url("https://qbeast.io/"))
ThisBuild / startYear := Some(2021)
ThisBuild / libraryDependencies ++= Seq(
fasterxml % Provided,
sparkFastTests % Test,
scalaTest % Test,
mockito % Test)
Test / javaOptions += "-Xmx2G"
Test / fork := true
// Scala compiler settings
ThisBuild / scalaVersion := "2.12.12"
ThisBuild / scalacOptions ++= Seq(
"-encoding",
"UTF-8",
"-target:jvm-1.8",
"-Xfatal-warnings",
"-feature",
"-language:postfixOps",
"-deprecation",
"-unchecked",
"-Xlint")
// Java compiler settings
ThisBuild / javacOptions ++= Seq(
"-encoding",
"UTF-8",
"-source",
"1.8",
"-target",
"1.8",
"-Werror",
"-g",
"-Xlint",
"-Xdoclint:all/package")
// this setting remove warning when using the sbt console
lazy val noWarningInConsole = Seq(
scalacOptions in (Compile, console) ~= {
_.filterNot(
Set("-Ywarn-unused-import", "-Ywarn-unused:imports", "-Xlint", "-Xfatal-warnings"))
},
scalacOptions in (Test, console) := (scalacOptions in (Compile, console)).value)
// Dependency repositories
ThisBuild / resolvers ++= Seq(Resolver.mavenLocal, Resolver.mavenCentral)
// Publication repository
ThisBuild / publishTo := Some(
"Qbeast Spark" at "https://maven.pkg.github.com/Qbeast-io/qbeast-spark")
// GitHub Package Registry credentials
ThisBuild / credentials += Credentials(
"GitHub Package Registry",
"maven.pkg.github.com",
sys.env.getOrElse(
// Any user will work if you're using a TOKEN as password
"GHPR_USERNAME",
"GHPR_USERNAME required to fetch or publish from/to GH Package Registry"),
sys.env.getOrElse(
"GHPR_TOKEN",
"GHPR_TOKEN required to fetch or publish from/to GitHub Package Registry"))
// Scalafmt settings
Compile / compile := (Compile / compile).dependsOn(Compile / scalafmtCheck).value
Test / compile := (Test / compile).dependsOn(Test / scalafmtCheck).value
// Scalastyle settings
Compile / compile := (Compile / compile).dependsOn((Compile / scalastyle).toTask("")).value
Test / compile := (Test / compile).dependsOn((Test / scalastyle).toTask("")).value
// Header settings
headerLicense := Some(HeaderLicense.Custom("Copyright 2021 Qbeast Analytics, S.L."))
headerEmptyLine := false
Compile / compile := (Compile / compile).dependsOn(Compile / headerCheck).value