-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.sbt
111 lines (90 loc) · 4.1 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
import Versions.versions
name := "amf-metadata"
ThisBuild / organization := "com.github.amlorg"
ThisBuild / scalaVersion := "2.12.20"
val artifactVersions = new {
val vocabularyVersion = versions("versions.yaml")("amf.vocabulary")
val transformVersion = versions("versions.yaml")("amf.transform")
}
val ivyLocal = Resolver.file("ivy", file(Path.userHome.absolutePath + "/.ivy2/local"))(Resolver.ivyStylePatterns)
lazy val workspaceDirectory: File =
sys.props.get("sbt.mulesoft") match {
case Some(x) => file(x)
case _ => Path.userHome / "mulesoft"
}
lazy val amfRdfLibJVM = "com.github.amlorg" %% "amf-rdf" % dependencies.amfRdfVersion
lazy val amfRdfRef = ProjectRef(workspaceDirectory / "amf-aml", "rdfJVM")
lazy val amfApiContractLibJVM = "com.github.amlorg" %% "amf-api-contract" % dependencies.amfVersion
lazy val amfApiContractRef = ProjectRef(workspaceDirectory / "amf", "apiContractJVM")
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Root ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lazy val root = project
.in(file("."))
.aggregate(vocabulary, transform, exporters)
.settings(
publish / aggregate := false
)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vocabulary ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lazy val vocabulary = project
.in(file("vocabulary"))
.settings(
commonSettings,
name := "amf-vocabulary",
version := artifactVersions.vocabularyVersion
)
.disablePlugins(SonarPlugin)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Canonical ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lazy val transform = project
.in(file("transform"))
.dependsOn(vocabulary)
.settings(
commonSettings,
name := "amf-transform",
version := artifactVersions.transformVersion,
libraryDependencies ++= commonDependencies
)
.sourceDependency(amfApiContractRef, amfApiContractLibJVM)
.sourceDependency(amfRdfRef, amfRdfLibJVM)
.disablePlugins(SonarPlugin)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Exporters ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lazy val exporters = project
.in(file("exporters"))
.dependsOn(transform)
.settings(
commonSettings,
libraryDependencies ++= commonDependencies,
libraryDependencies += "org.reflections" % "reflections" % "0.9.12"
)
.sourceDependency(amfApiContractRef, amfApiContractLibJVM)
.disablePlugins(SonarPlugin)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
val commonSettings = Common.settings ++ Common.publish ++ Seq(
organization := "com.github.amlorg",
resolvers ++= List(ivyLocal, Common.releases, Common.snapshots, Resolver.mavenLocal),
resolvers += "jitpack" at "https://jitpack.io",
credentials ++= Common.credentials(),
Test / logBuffered := false
)
lazy val dependencies = new {
val scalaTestVersion = "3.1.2"
val amfVersion = versions("transform/dependencies.properties")("amf.apicontract")
val amfRdfVersion = versions("transform/dependencies.properties")("amf.rdf")
val scalaTest = "org.scalatest" %% "scalatest" % scalaTestVersion % Test
}
lazy val commonDependencies = Seq(dependencies.scalaTest, amfApiContractLibJVM)
lazy val sonarUrl = sys.env.getOrElse("SONAR_SERVER_URL", "Not found url.")
lazy val sonarToken = sys.env.getOrElse("SONAR_SERVER_TOKEN", "Not found token.")
lazy val branch = sys.env.getOrElse("BRANCH_NAME", "develop")
//enablePlugins(ScalaJSBundlerPlugin)
sonarProperties ++= Map(
"sonar.login" -> sonarToken,
"sonar.projectKey" -> "mulesoft.amf-metadata.gec",
"sonar.projectName" -> "AMF-Metadata",
"sonar.projectVersion" -> artifactVersions.transformVersion,
"sonar.sourceEncoding" -> "UTF-8",
"sonar.github.repository" -> "mulesoft/amf-metadata",
"sonar.branch.name" -> branch,
"sonar.sources" -> "transform/src/main/scala,exporters/src/main/scala",
"sonar.tests" -> "transform/src/test/scala,exporters/src/test/scala",
"sonar.userHome" -> "${buildDir}/.sonar",
"sonar.scala.coverage.reportPaths" -> "target/scala-2.12/scoverage-report/scoverage.xml"
)