forked from fun-cqrs/fun-cqrs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sbt
129 lines (105 loc) · 3.79 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
117
118
119
120
121
122
123
124
125
126
127
128
129
import Dependencies._
import BuildSettings._
import sbt._
name := "fun-cqrs"
organization in ThisBuild := "org.funcqrs"
scalaVersion in ThisBuild := "2.11.11"
crossScalaVersions in ThisBuild := Seq("2.11.11", "2.12.3")
val snapshotSuffix = "-SNAPSHOT"
isSnapshot := version.value.endsWith(snapshotSuffix)
ivyScala := ivyScala.value map {
_.copy(overrideScalaVersion = true)
}
scalacOptions := Seq("-unchecked", "-deprecation", "-feature", "-Xlint:-infer-any", "-Xfatal-warnings")
// dependencies
lazy val root = Project(
id = "fun-cqrs",
base = file("."),
settings = Seq(
publishArtifact := false
)
) aggregate(
funCqrs,
funCqrsAkka,
funCqrsTestKit,
raffleApp
)
// Core ==========================================
lazy val funCqrs = Project(
id = "fun-cqrs-core",
base = file("modules/core"),
settings = defaultSettings
).settings(libraryDependencies ++= mainDeps)
//================================================
// Akka integration ==============================
lazy val funCqrsAkka = Project(
id = "fun-cqrs-akka",
base = file("modules/akka"),
settings = defaultSettings
).settings(libraryDependencies ++= mainDeps ++ akkaDeps)
.dependsOn(funCqrs % "compile->compile;test->test")
//================================================
//Test kit =======================================
lazy val funCqrsTestKit = Project(
id = "fun-cqrs-test-kit",
base = file("modules/tests"),
settings = defaultSettings
).settings(libraryDependencies ++= mainDeps ++ Seq(rxScala, reactiveStreamAdapter))
.dependsOn(funCqrs % "compile->compile;test->test")
//================================================
// #####################################################
// # SAMPLES #
// #####################################################
lazy val raffleApp = Project(
id = "sample-raffle",
base = file("samples/raffle"),
settings = defaultSettings
).settings(libraryDependencies ++= sampleDeps)
.settings(publishArtifact := false)
.dependsOn(funCqrs)
.dependsOn(funCqrsTestKit)
.dependsOn(funCqrsAkka)
addCommandAlias("runRaffleAkka", "sample-raffle/runMain raffle.app.MainAkka")
addCommandAlias("runRaffleInMemory", "sample-raffle/runMain raffle.app.MainInMemory")
// #####################################################
// # PUBLISH SETTINGS #
// #####################################################
publishMavenStyle := true
pomIncludeRepository := { _ =>
false
}
credentials ++= publishingCredentials
pomExtra in ThisBuild := pomInfo
pgpPassphrase := Option(System.getenv().get("PGP_PASSPHRASE")).map(_.toCharArray)
pgpSecretRing := file("local.secring.gpg")
pgpPublicRing := file("local.pubring.gpg")
publishTo in ThisBuild := {
val nexus = "https://oss.sonatype.org/"
if (isSnapshot.value)
Some("snapshots" at nexus + "content/repositories/snapshots")
else
Some("releases" at nexus + "service/local/staging/deploy/maven2")
}
lazy val publishingCredentials = (for {
username <- Option(System.getenv().get("SONATYPE_USERNAME"))
password <- Option(System.getenv().get("SONATYPE_PASSWORD"))
} yield Seq(Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", username, password))).getOrElse(Seq())
lazy val pomInfo = <url>https://github.com/fun-cqrs/fun-cqrs</url>
<licenses>
<license>
<name>Apache 2</name>
<url>http://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>[email protected]:fun-cqrs/fun-cqrs.git</url>
<connection>scm:git:[email protected]:fun-cqrs/fun-cqrs.git</connection>
</scm>
<developers>
<developer>
<id>rcavalcanti</id>
<name>Renato Cavalcanti</name>
<url>https://github.com/renatocaval</url>
</developer>
</developers>