-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sbt
116 lines (106 loc) · 4.12 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
108
109
110
111
112
113
114
115
116
// *****************************************************************************
// Build settings
// *****************************************************************************
inThisBuild(
Seq(
organization := "com.robinraju",
organizationName := "Robin Raju",
startYear := Some(2022),
licenses += ("Apache-2.0", url("http://www.apache.org/licenses/LICENSE-2.0")),
scmInfo := Some(
ScmInfo(
url("https://github.com/robinraju/web-crawler"),
"git@github.com:robinraju/web-crawler.git"
)
),
developers := List(
Developer(
"robinraju",
"Robin Raju",
"hello@robinraju.com",
url("https://github.com/robinraju")
)
),
scalaVersion := "2.13.14",
semanticdbEnabled := true,
semanticdbVersion := scalafixSemanticdb.revision,
scalafixDependencies += library.scalafix,
scalacOptions ++= Seq(
"-deprecation",
"-unchecked",
"-Xfatal-warnings",
"-Ywarn-unused"
),
scalafmtOnCompile := true
)
)
// *****************************************************************************
// Projects
// *****************************************************************************
lazy val `web-crawler` =
project
.in(file("."))
.settings(commonSettings)
.settings(
libraryDependencies ++= Seq(
library.akka,
library.akkaLogging,
library.logBack,
library.jSoup,
library.Kamon,
library.KamonCaffeine,
library.KamonExecutors,
library.KamonSystem,
library.KamonInfluxDB,
library.sCaffeine % Compile,
library.akkaTestKit % Test,
library.scalaTest % Test,
),
Compile / run / mainClass := Some("com.robinraju.Main")
)
// *****************************************************************************
// Project settings
// *****************************************************************************
lazy val commonSettings =
Seq(
// Also (automatically) format build definition together with sources
Compile / scalafmt := {
val _ = (Compile / scalafmtSbt).value
(Compile / scalafmt).value
}
)
// Run in a separate JVM, to make sure sbt waits until all threads have
// finished before returning.
fork := true
// *****************************************************************************
// Library dependencies
// *****************************************************************************
lazy val library =
new {
object Version {
val AkkaVersion = "2.6.20"
val ScalaTestVersion = "3.2.19"
val ScalafixVersion = "0.6.0"
val LogbackVersion = "1.5.8"
val JSoupVersion = "1.18.1"
val SCaffeineVersion = "5.3.0"
val KamonVersion = "2.7.3"
}
val akka = "com.typesafe.akka" %% "akka-actor-typed" % Version.AkkaVersion
val akkaTestKit = "com.typesafe.akka" %% "akka-actor-testkit-typed" % Version.AkkaVersion
val scalaTest = "org.scalatest" %% "scalatest" % Version.ScalaTestVersion
val akkaLogging = "com.typesafe.akka" %% "akka-slf4j" % Version.AkkaVersion
val logBack = "ch.qos.logback" % "logback-classic" % Version.LogbackVersion
val jSoup = "org.jsoup" % "jsoup" % Version.JSoupVersion
val sCaffeine = "com.github.blemale" %% "scaffeine" % Version.SCaffeineVersion
val Kamon = "io.kamon" %% "kamon-akka" % Version.KamonVersion
val KamonCaffeine = "io.kamon" %% "kamon-caffeine" % Version.KamonVersion
val KamonExecutors = "io.kamon" %% "kamon-executors" % Version.KamonVersion
val KamonSystem = "io.kamon" %% "kamon-system-metrics" % Version.KamonVersion
val KamonInfluxDB = "io.kamon" %% "kamon-influxdb" % Version.KamonVersion
val scalafix = "com.github.liancheng" %% "organize-imports" % Version.ScalafixVersion
}
addCommandAlias(
"styleCheck",
"; scalafmtCheckAll; scalafmtSbtCheck ; scalafixAll --check"
)