-
Notifications
You must be signed in to change notification settings - Fork 5
/
build.sbt
77 lines (70 loc) · 2.45 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
name := "api-build"
organization := "io.flow"
ThisBuild / scalaVersion := "2.13.15"
ThisBuild / javacOptions ++= Seq("-source", "17", "-target", "17")
enablePlugins(GitVersioning)
git.useGitDescribe := true
coverageExcludedFiles := ".*\\/src/main/scala/io/flow/generated\\/.*"
coverageDataDir := file("target/scala-2.13")
coverageHighlighting := true
coverageFailOnMinimum := true
coverageMinimumStmtTotal := 48
coverageMinimumBranchTotal := 52
lazy val allScalacOptions = Seq(
"-feature",
"-Xfatal-warnings",
"-unchecked",
"-Xcheckinit",
"-Xlint:adapted-args",
"-Ypatmat-exhaust-depth",
"100", // Fixes: Exhaustivity analysis reached max recursion depth, not all missing cases are reported.
"-Wconf:src=generated/.*:silent",
"-Wconf:src=target/.*:silent", // silence the unused imports errors generated by the Play Routes
)
assembly / assemblyMergeStrategy := {
case PathList("io", "flow", _*) =>
// we have multiple copies of apibuilder generated code
// just take the first one, it's no worse than whatever happens in production
MergeStrategy.first
case "module-info.class" =>
MergeStrategy.discard
case x =>
val oldStrategy = (assembly / assemblyMergeStrategy).value
oldStrategy(x)
}
lazy val root = project
.in(file("."))
.settings(
scalafmtOnCompile := true,
scalacOptions ++= allScalacOptions ++ Seq("-release", "17"),
libraryDependencies ++= Seq(
"io.flow" %% "lib-util" % "0.2.50",
"io.apibuilder" %% "apibuilder-validation" % "0.4.33",
"com.typesafe.play" %% "play-json" % "2.9.4",
"com.ning" % "async-http-client" % "1.9.40",
"org.typelevel" %% "cats-core" % "2.10.0",
"org.typelevel" %% "cats-effect" % "2.3.3",
"org.scalatest" %% "scalatest" % "3.2.18" % Test,
"com.github.scopt" %% "scopt" % "4.1.0",
),
)
resolvers += "Artifactory" at "https://flow.jfrog.io/flow/libs-release/"
Test / javaOptions ++= Seq(
"--add-exports=java.base/sun.security.x509=ALL-UNNAMED",
"--add-opens=java.base/sun.security.ssl=ALL-UNNAMED",
)
credentials += Credentials(
"Artifactory Realm",
"flow.jfrog.io",
System.getenv("ARTIFACTORY_USERNAME"),
System.getenv("ARTIFACTORY_PASSWORD"),
)
publishTo := {
val host = "https://flow.jfrog.io/flow"
if (isSnapshot.value) {
Some("Artifactory Realm" at s"$host/libs-snapshot-local;build.timestamp=" + new java.util.Date().getTime)
} else {
Some("Artifactory Realm" at s"$host/libs-release-local")
}
}
version := "0.3.24"