-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.sbt
More file actions
114 lines (105 loc) · 2.88 KB
/
build.sbt
File metadata and controls
114 lines (105 loc) · 2.88 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
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
import sbt.Keys.version
resolvers ++= Seq(
Resolver.mavenLocal,
DefaultMavenRepository
)
val repsy = "Repsy Managed Repository" at "https://repo.repsy.io/mvn/ppotseluev/default"
lazy val settings = Seq(
organization := "com.github.ppotseluev",
version := "1.0-SNAPSHOT",
scalaVersion := "2.13.3",
scalaSource in Compile := baseDirectory.value / "src/main/scala",
scalaSource in Test := baseDirectory.value / "src/test/scala",
javacOptions ++= Seq("-source", "1.8", "-target", "1.8"),
scalacOptions := Seq(
"-Ymacro-annotations",
"-language:higherKinds",
"-Xfatal-warnings",
"-deprecation"
),
ThisBuild / publishTo := Some(repsy),
ThisBuild / credentials += Credentials(
"Repsy Managed Repository",
"repo.repsy.io", "ppotseluev",
sys.env.getOrElse("REPSY_PWD", "UNDEFINED")
),
ThisBuild / resolvers ++= List(Resolver.mavenLocal, repsy),
addCompilerPlugin(Dependency.kindProjector),
assemblyMergeStrategy in assembly := {
case x if x.contains("io.netty.versions.properties") => MergeStrategy.concat
case PathList(ps@_*) if ps.last endsWith "pom.properties" => MergeStrategy.first
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}
)
lazy val root = project
.in(file("."))
.settings(
name := "botgen",
settings
).aggregate(
`botgen-model`,
`botgen-bot`,
`botgen-core`,
`botgen-api`
)
lazy val `botgen-model` = project
.settings(
name := "botgen-model",
settings,
libraryDependencies ++= Seq(
Dependency.tagging
)
)
lazy val `botgen-bot` = project
.settings(
name := "botgen-bot",
settings,
libraryDependencies ++= Seq(
Dependency.scalaGraph,
Dependency.catsCore,
Dependency.catsFree
)
).dependsOn(`botgen-model`)
lazy val `botgen-core` = project
.settings(
name := "botgen-core",
settings,
libraryDependencies ++= Seq(
Dependency.sttpClientCore,
Dependency.sttpClientCirce,
Dependency.circeCore,
Dependency.circeGeneric,
Dependency.circeGenericExtras,
Dependency.doobieCore
)
).dependsOn(`botgen-bot`)
lazy val `botgen-server` = project
.settings(
name := "botgen-server",
settings,
libraryDependencies ++= Seq(
Dependency.sttpClientCatsBackend,
Dependency.mysqlConnector,
Dependency.typesafeConfig,
Dependency.ficus,
Dependency.scalaBcrypt
)
).dependsOn(`botgen-core`)
lazy val `botgen-api` = project
.settings(
name := "botgen-api",
settings,
mainClass in assembly := Some("botgen.api.Main"),
libraryDependencies ++= Seq(
Dependency.tapirCore,
Dependency.tapirJsonCirce,
Dependency.tapirHttp4s,
Dependency.tapirSwaggerUi,
Dependency.tapirOpenapiDocs,
Dependency.tapirOpenapiCirceYaml,
Dependency.scalaLogging,
Dependency.logback
)
).dependsOn(`botgen-server`)