-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathbuild.sbt
88 lines (75 loc) · 3.84 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
import org.clulab.sbt.BuildUtils
import org.clulab.sbt.Resolvers
// See also the other files in the project directory with sbt extensions.
// They are generally named according to the task they are associated with:
// compile, initialize, publish, release, run, test, update, etc.
name := "eidos"
description := BuildUtils.singleLine("""
|Eidos is an open-domain machine reading system designed by the Computational Language Understanding (CLU) Lab
|at the University of Arizona for the World Modelers DARPA program. It uses a cascade of Odin grammars to
|extract events from free text.
""")
// Last checked 2021-08-23
val scala11 = "2.11.12" // up to 2.11.12
val scala12 = "2.12.15" // up to 2.12.15
val scala13 = "2.13.7" // up to 2.13.7
// Processors is not available for scala13, so it is skipped here.
ThisBuild / crossScalaVersions := Seq(scala12, scala11) // , scala13)
ThisBuild / scalaVersion := crossScalaVersions.value.head
resolvers ++= Seq(
Resolvers.localResolver, // Reserve for Two Six.
Resolvers.clulabResolver, // glove
Resolvers.jitpackResolver // Ontologies
)
libraryDependencies ++= {
val playVersion = BuildUtils.sbtPluginVersion
val lihaoyiVer = "0.7.1"
Seq(
// These two are not needed for the docker file if the cache is used.
"org.clulab" % "geonames" % "1.0.0+20200518T005330Z.gadmworedas",
// Eidos now reuses the glove vectors from processors, so none of these is needed.
// "org.clulab" %% "glove-840b-300d-10f-bin" % "1.0.0", // abridged, binary, quick loading if compatible
// "org.clulab" %% "glove-840b-300d-10f" % "1.0.0", // abridged, text, slower loading
// "org.clulab" % "glove-840b-300d" % "0.1.0", // unabridged, text, slowest loading
// The rest from org.clulab are always needed.
"org.clulab" %% "timenorm" % "1.0.5" exclude("org.slf4j", "slf4j-log4j12"),
"org.clulab" %% "geonorm" % "1.0.0",
// This is used for config utilities in particular.
"ai.lum" %% "common" % "0.1.5",
// This ontology is fetched from github rather than included directly.
"com.github.WorldModelers" % "Ontologies" % "master-SNAPSHOT", // remote
// "WorldModelers" %% "ontologies" % "0.3.0-SNAPSHOT", // local
// Web serialization needs this.
"com.typesafe.play" %% "play-json" % playVersion,
// This next one is used in MaaSUtils.
"com.lihaoyi" %% "upickle" % lihaoyiVer,
// These are used for testing only.
"com.github.jsonld-java" % "jsonld-java" % "0.12.0" % Test
)
}
lazy val core: Project = (project in file("."))
.enablePlugins(BuildInfoPlugin)
.disablePlugins(PlayScala, JavaAppPackaging, SbtNativePackager)
.dependsOn(eidoscommon % "compile -> compile; test -> test", ontologies)
.aggregate(eidoscommon, ontologies)
.settings(
assembly / aggregate := false,
ScalaUnidoc / unidoc / unidocProjectFilter := inAnyProject -- inProjects(elasticsearch, webapp, wmexchanger),
addMappingsToSiteDir(ScalaUnidoc / packageDoc / mappings, ScalaUnidoc / siteSubdirName)
)
lazy val eidoscommon = project
// Skip scala11 on this internal project.
lazy val elasticsearch = project
.dependsOn(eidoscommon)
lazy val ontologies = project
.dependsOn(eidoscommon)
lazy val webapp = project
.enablePlugins(PlayScala)
.dependsOn(core)
// Skip scala11 on this internal project.
lazy val wmexchanger = project
.enablePlugins(JavaAppPackaging)
.disablePlugins(PlayScala)
.aggregate(core)
.dependsOn(core % "compile -> compile; test -> test", eidoscommon)
addCommandAlias("dockerizeWebapp", ";runMain org.clulab.wm.eidos.apps.cache.CacheGeonames;webapp/docker:publishLocal")