-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathbuild.sbt
79 lines (62 loc) · 2.37 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
name := "Ontologies"
organization := "WorldModelers"
scalaVersion := "2.12.13"
libraryDependencies ++= Seq(
"org.scalatest" %% "scalatest" % "3.0.4" % Test
)
lazy val root = (project in file("."))
.dependsOn(common % "test -> test")
lazy val common = project
lazy val extras = project
.dependsOn(common)
val ontologies: (String, Seq[String]) = (
"org.clulab.wm.eidos.english.ontologies", // ontology package
Seq(
// The user should set these values.
"CompositionalOntology_metadata.yml",
"wm_flat_metadata.yml"
)
)
// Only the resource is published, independently of Scala version.
ThisBuild / crossPaths := false
ThisBuild / Compile / packageBin / publishArtifact := true // Do include the resources.
ThisBuild / Compile / packageDoc / publishArtifact := false // There is no documentation.
ThisBuild / Compile / packageSrc / publishArtifact := false // There is no source code.
ThisBuild / Test / packageBin / publishArtifact := false
// This copies the files to their correct places for packaging.
// In the meantime they can be placed where it's easy to edit them.
Compile / packageBin / mappings ++= {
val (resourceNamespace, filenames) = ontologies
val basedir = resourceNamespace.replace('.', '/') + "/"
filenames.map { filename =>
file(filename) -> (basedir + filename)
}
}
lazy val versionTask = Def.task {
val (resourceNamespace, filenames) = ontologies
val versioner = Versioner(
git.runner.value, git.gitCurrentBranch.value,
baseDirectory.value, (Compile / resourceManaged).value,
resourceNamespace,
// Turn off rethrow to complete even in the presence of an error.
filenames, streams.value.log, rethrow = true
)
versioner
}
Compile / resourceGenerators += Def.task {
versionTask.value.versionResources()
}.taskValue
ThisBuild / Test / parallelExecution := false
import scala.xml.{Node => XmlNode, NodeSeq => XmlNodeSeq, _}
import scala.xml.transform.{RewriteRule, RuleTransformer}
// See https://stackoverflow.com/questions/41670018/how-to-prevent-sbt-to-include-test-dependencies-into-the-pom
// Skip all dependencies.
pomPostProcess := { (node: XmlNode) =>
new RuleTransformer(new RewriteRule {
override def transform(node: XmlNode): XmlNodeSeq = node match {
case e: Elem if e.label == "dependencies" =>
e.copy(child = Array.empty[scala.xml.Node])
case _ => node
}
}).transform(node).head
}