blob: ec331f91308f84142319ac3b7b30eb1c883832d8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
val nlpcraftVer = "1.0.0"
// Common libraries.
val scalaMajVer = "3"
val scalaMinVer = "1.3"
val log4jVer = "2.17.2"
val scalaLoggingVer = "3.9.4"
val scalatestVer = "3.2.11"
val scalaParColections = "1.0.4"
val orgAntlr4Ver = "4.10.1"
val jlineVer = "3.21.0"
val commonsIoVer = "2.11.0"
val commonsLang3Ver = "3.12.0"
val commonsCodecVer = "1.15"
val commonsCollectionsVer = "4.4"
val scala3RefVer = "1.1.4"
val gsonVer = "2.9.0"
val jacksonVer = "2.13.2"
val jacksonYamlVer = "2.13.2"
val apacheOpennlpVer = "1.9.4"
// Test libraries.
val junitVer = "5.8.2"
val jmhVer = "1.35"
// Stanford project libraries.
val stanfordCorenlpVer = "4.4.0"
// Examples libraries.
val languagetoolVer = "5.6"
val luceneAnalyzersCommonVer = "8.11.1"
ThisBuild / scalaVersion := s"$scalaMajVer.$scalaMinVer"
ThisBuild / version := nlpcraftVer
ThisBuild / organization := "org.apache"
ThisBuild / organizationName := "NlpCraft"
ThisBuild / description := "An open source API to convert natural language into actions."
ThisBuild / licenses := List("Apache-2.0" -> url("https://github.com/sbt/sbt/blob/develop/LICENSE"))
ThisBuild / homepage := Some(url("https://nlpcraft.apache.org/"))
ThisBuild / scmInfo := Some(ScmInfo(url("https://github.com/apache/incubator-nlpcraft"), "scm:git@github.com/apache/incubator-nlpcraft.git"))
ThisBuild / developers ++= List(
"aradzinski" -> "Aaron Radzinski ",
"skhdl" -> "Sergey Kamov"
).map {
case (username, fullName) => Developer(username, fullName, s"@$username", url(s"https://github.com/$username"))
}
lazy val libs = Seq(
"com.typesafe.scala-logging" % s"scala-logging_$scalaMajVer" % scalaLoggingVer,
"com.google.code.gson" % "gson" % gsonVer,
"commons-io" % "commons-io" % commonsIoVer,
"commons-codec" % "commons-codec" % commonsCodecVer,
"org.apache.commons" % "commons-collections4" % commonsCollectionsVer,
"com.fasterxml.jackson.dataformat" % "jackson-dataformat-yaml" % jacksonVer,
"com.fasterxml.jackson.core" % "jackson-databind" % jacksonVer,
"com.fasterxml.jackson.module" % "jackson-module-scala_3" % jacksonVer,
"org.antlr" % "antlr4-runtime" % orgAntlr4Ver,
"org.apache.opennlp" % "opennlp-tools" % apacheOpennlpVer,
"org.apache.logging.log4j" % "log4j-slf4j-impl" % log4jVer,
"org.apache.logging.log4j" % "log4j-api" % log4jVer,
"org.jline" % "jline-terminal" % jlineVer,
"org.junit.jupiter" % "junit-jupiter-engine" % junitVer % Test
)
val commonScalaDoc = Seq(
"-project-footer", "Apache, Nlpcraft",
"-project-version", nlpcraftVer,
"-siteroot", ".",
"-doc-root-content", "scaladoc/docroot.md",
"-source-links:github://apache/incubator-nlpcraft/master",
"-social-links:github::https://github.com/apache/incubator-nlpcraft"
)
lazy val nlpcraft = (project in file("nlpcraft"))
.settings(
name := "NlpCraft",
version := nlpcraftVer,
// Scaladoc config.
Compile / doc / scalacOptions ++= commonScalaDoc,
// Dependencies.
libraryDependencies ++= libs,
libraryDependencies += "org.apache.commons" % "commons-lang3" % commonsLang3Ver,
libraryDependencies += "org.openjdk.jmh" % "jmh-core" % jmhVer % Test
)
lazy val nlpcraftStanford = (project in file("nlpcraft-stanford"))
.dependsOn(nlpcraft)
.settings(
name := "NlpCraft Stanford",
version := nlpcraftVer,
// Scaladoc config.
Compile / doc / scalacOptions ++= commonScalaDoc,
// Dependencies.
libraryDependencies ++= libs,
libraryDependencies += "edu.stanford.nlp" % "stanford-corenlp" % stanfordCorenlpVer,
libraryDependencies += "edu.stanford.nlp" % "stanford-corenlp" % stanfordCorenlpVer classifier "models"
)
lazy val timeExample = (project in file("nlpcraft-examples/time"))
.dependsOn(nlpcraft)
.settings(
name := "NlpCraft Time Example",
version := nlpcraftVer,
// Scaladoc config.
Compile / doc / scalacOptions ++= commonScalaDoc,
// Dependencies.
libraryDependencies ++= libs
)
lazy val lightSwitchExample = (project in file("nlpcraft-examples/lightswitch"))
.dependsOn(nlpcraft)
.settings(
name := "NlpCraft LightSwitch Example",
version := nlpcraftVer,
// Scaladoc config.
Compile / doc / scalacOptions ++= commonScalaDoc,
// Dependencies.
libraryDependencies ++= libs
)
lazy val lightSwitchRuExample = (project in file("nlpcraft-examples/lightswitch-ru"))
.dependsOn(nlpcraft)
.settings(
name := "NlpCraft LightSwitch RU Example",
version := nlpcraftVer,
// Scaladoc config.
Compile / doc / scalacOptions ++= commonScalaDoc,
// Dependencies.
libraryDependencies ++= libs,
libraryDependencies += "org.apache.lucene" % "lucene-analyzers-common" % luceneAnalyzersCommonVer,
libraryDependencies += "org.languagetool" % "languagetool-core" % languagetoolVer,
libraryDependencies += "org.languagetool" % "language-ru" % languagetoolVer
)
lazy val lightSwitchFrExample = (project in file("nlpcraft-examples/lightswitch-fr"))
.dependsOn(nlpcraft)
.settings(
name := "NlpCraft LightSwitch FR Example",
version := nlpcraftVer,
// Scaladoc config.
Compile / doc / scalacOptions ++= commonScalaDoc,
// Dependencies.
libraryDependencies ++= libs,
libraryDependencies += "org.apache.lucene" % "lucene-analyzers-common" % luceneAnalyzersCommonVer,
libraryDependencies += "org.languagetool" % "languagetool-core" % languagetoolVer,
libraryDependencies += "org.languagetool" % "language-fr" % languagetoolVer
)