blob: b44bf91a78fcd0b0a9b1c3388274715fb4e959a4 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<project
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>NLPCraft Parent</name>
<groupId>org.apache.nlpcraft</groupId>
<artifactId>nlpcraft-parent</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<url>https://nlpcraft.apache.org</url>
<description>An open source API to convert natural language into actions.</description>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>10</version>
</parent>
<modules>
<module>nlpcraft</module>
</modules>
<developers>
<developer>
<id>aradzinski</id>
<name>Aaron Radzinski</name>
<email>aradzinski@apache.org</email>
<organization>apache</organization>
<organizationUrl>https://apache.org</organizationUrl>
<roles>
<role>architect</role>
</roles>
</developer>
</developers>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
<comments>A business-friendly OSS license</comments>
</license>
</licenses>
<scm>
<url>https://github.com/apache/incubator-nlpcraft.git</url>
<connection>scm:git:ssh://git@github.com/apache/incubator-nlpcraft.git</connection>
<developerConnection>scm:git:ssh://git@github.com/apache/incubator-nlpcraft.git</developerConnection>
<!-- Set actual tag name here -->
<tag>v1.0.0</tag>
</scm>
<properties>
<!-- Major Java/Scala version. -->
<scala.major.ver>3</scala.major.ver>
<scala3.ver>${scala.major.ver}.1.1</scala3.ver>
<scala2.ver>2.13.8</scala2.ver>
<java.ver>11</java.ver>
<maven.build.timestamp.format>yyyy-MM-dd-HH-mm</maven.build.timestamp.format>
<timestamp>${maven.build.timestamp}</timestamp>
<!-- Versions. -->
<scala.plugin.ver>4.6.3</scala.plugin.ver>
<log4j.ver>2.17.2</log4j.ver>
<scala.config.ver>1.3.4</scala.config.ver>
<scala.logging.ver>3.9.4</scala.logging.ver>
<scalatest.ver>3.2.11</scalatest.ver>
<scala.par.colections>1.0.4</scala.par.colections>
<maven.jar.plugin.ver>3.2.2</maven.jar.plugin.ver>
<maven.compiler.plugin.ver>3.8.1</maven.compiler.plugin.ver>
<maven.enforcer.plugin.ver>1.4.1</maven.enforcer.plugin.ver>
<maven.surefire.plugin.ver>2.22.1</maven.surefire.plugin.ver>
<maven.shade.plugin.ver>3.2.1</maven.shade.plugin.ver>
<maven.project.info.reports.plugin.ver>2.2</maven.project.info.reports.plugin.ver>
<maven.install.plugin.ver>2.5.2</maven.install.plugin.ver>
<maven.source.plugin.ver>3.0.1</maven.source.plugin.ver>
<maven.clean.plugin.ver>3.1.0</maven.clean.plugin.ver>
<maven.javadoc.plugin.ver>3.2.0</maven.javadoc.plugin.ver>
<org.antlr4.ver>4.10.1</org.antlr4.ver>
<jline.ver>3.21.0</jline.ver>
<commons.io.ver>2.11.0</commons.io.ver>
<commons.lang3.ver>3.12.0</commons.lang3.ver>
<commons.codec.ver>1.15</commons.codec.ver>
<commons.collections.ver>4.4</commons.collections.ver>
<scala3.ref.ver>1.1.4</scala3.ref.ver>
<junit.ver>5.8.2</junit.ver>
<scalatest.ver>3.2.11</scalatest.ver>
<jackson.ver>2.13.2</jackson.ver>
<jackson.yaml.ver>2.13.2</jackson.yaml.ver>
<apache.opennlp.ver>1.9.4</apache.opennlp.ver>
<jmh.version>1.35</jmh.version>
<gson.ver>2.9.0</gson.ver>
<!-- Force specific encoding on text resources. -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Jar with all dependencies. -->
<nlpcraft.all.deps.jar>apache-${project.artifactId}-incubating-${project.version}-all-deps.jar</nlpcraft.all.deps.jar>
<!--
NOTE: this library is NOT included in binary build and is optional
for NLPCraft. It is licensed under GPLv3 and has to be downloaded separately by
the end user, when required.
-->
<stanford.corenlp.ver>4.4.0</stanford.corenlp.ver>
</properties>
<dependencyManagement>
<dependencies>
<!--
Scala3 dependencies.
===================
-->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala3-library_${scala.major.ver}</artifactId>
<version>${scala3.ver}</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala2.ver}</version>
</dependency>
<dependency>
<groupId>org.scala-lang.modules</groupId>
<artifactId>scala-parallel-collections_${scala.major.ver}</artifactId>
<version>${scala.par.colections}</version>
</dependency>
<dependency>
<groupId>com.typesafe.scala-logging</groupId>
<artifactId>scala-logging_${scala.major.ver}</artifactId>
<version>${scala.logging.ver}</version>
</dependency>
<!--
Other dependencies.
==================
-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.ver}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.ver}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons.codec.ver}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>${commons.collections.ver}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${jackson.ver}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.ver}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-scala_3</artifactId>
<version>${jackson.ver}</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>${org.antlr4.ver}</version>
</dependency>
<dependency>
<groupId>org.apache.opennlp</groupId>
<artifactId>opennlp-tools</artifactId>
<version>${apache.opennlp.ver}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.ver}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.ver}</version>
</dependency>
<!--
JLine dependencies.
==================
-->
<dependency>
<groupId>org.jline</groupId>
<artifactId>jline-terminal</artifactId>
<version>${jline.ver}</version>
</dependency>
<!--
Stanford dependencies.
==================
-->
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>${stanford.corenlp.ver}</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>${stanford.corenlp.ver}</version>
<classifier>models</classifier>
</dependency>
<!--
Test scope.
===========
-->
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_${scala.major.ver}</artifactId>
<version>${scalatest.ver}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.ver}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.jar.plugin.ver}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>${scala.plugin.ver}</version>
<configuration>
<jvmArgs>
<jvmArg>-Xms512m</jvmArg>
<jvmArg>-Xmx4096m</jvmArg>
<jvmArg>-Xss2048k</jvmArg>
</jvmArgs>
<args>
<arg>-unchecked</arg>
<arg>-deprecation</arg>
<arg>-feature</arg>
</args>
<scalaCompatVersion>3</scalaCompatVersion>
<source>${java.ver}</source>
<target>${java.ver}</target>
</configuration>
<executions>
<execution>
<id>scala-compile-first</id>
<phase>process-resources</phase>
<goals>
<goal>add-source</goal>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>scala-test-compile</id>
<phase>process-test-resources</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.ver}</version>
<configuration>
<source>${java.ver}</source>
<target>${java.ver}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven.enforcer.plugin.ver}</version>
<configuration>
<rules>
<requireJavaVersion>
<message>
------------------------------------------------------------------------
You are trying to compile NLPCraft with inappropriate JDK version!
Detected JDK Version: ${java.runtime.version}.
JDK version should be 11 or later.
------------------------------------------------------------------------
</message>
<version>11</version>
</requireJavaVersion>
</rules>
</configuration>
<executions>
<execution>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven.source.plugin.ver}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!-- Stanford CoreNLP integration is not included by default due to GPL-licensed code. -->
<profile>
<id>stanford-core</id>
<modules>
<module>nlpcraft-stanford</module>
</modules>
</profile>
<profile>
<id>examples</id>
<modules>
<module>nlpcraft-examples/time</module>
<module>nlpcraft-examples/lightswitch</module>
<module>nlpcraft-examples/lightswitch-ru</module>
<module>nlpcraft-examples/lightswitch-fr</module>
<module>nlpcraft-examples/pizzeria</module>
</modules>
</profile>
</profiles>
</project>