<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~
  ~  Copyright 2020 WeBank
  ~
  ~  Licensed 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="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	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>

	<groupId>com.webank.wedatasphere.exchangis</groupId>
	<artifactId>exchangis</artifactId>
	<version>${revision}</version>
	<packaging>pom</packaging>

	<name>exchangis</name>
	<description>Unified data exchange service</description>

	<licenses>
		<license>
			<name>Apache 2.0 License</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<properties>
		<revision>1.1.3</revision>
		<dss.version>1.1.2</dss.version>
		<linkis.version>1.4.0</linkis.version>
		<linkis.datasource.version>1.4.0</linkis.datasource.version>
		<streamis.version>0.1.0-SNAPSHOT</streamis.version>
		<flatten-maven-plugin.version>1.3.0</flatten-maven-plugin.version>
		<maven-deploy-plugin.version>3.0.0</maven-deploy-plugin.version>
		<maven-enforcer-plugin.version>3.0.0</maven-enforcer-plugin.version>
		<scala.version>2.11.12</scala.version>
		<scala-maven-plugin.version>4.7.1</scala-maven-plugin.version>
		<jdk.compile.version>1.8</jdk.compile.version>
		<maven.version>3.8.1</maven.version>
		<maven-site-plugin.version>3.8.2</maven-site-plugin.version>
		<maven-jar-plugin.version>2.6</maven-jar-plugin.version>
		<gson.version>2.8.5</gson.version>
		<jackson-core.version>2.13.4</jackson-core.version>
		<jackson-databind.version>2.13.4.2</jackson-databind.version>
		<org.codehaus.jackson.version>1.9.13</org.codehaus.jackson.version>
		<math3.version>3.1.1</math3.version>
		<httpclient.version>4.5.4</httpclient.version>
		<httpmime.version>4.5.4</httpmime.version>
		<beanutils.version>1.9.4</beanutils.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spring.version>5.2.12.RELEASE</spring.version>
		<mybatis.spring.boot.version>2.1.2</mybatis.spring.boot.version>
		<spring.boot.version>2.3.7.RELEASE</spring.boot.version>
		<spring.cloud.version>2.2.6.RELEASE</spring.cloud.version>
		<commons.math.version>3.1.1</commons.math.version>
		<commons.lang3.version>3.8.1</commons.lang3.version>
		<commons.lang.version>2.6</commons.lang.version>
		<reflections.version>0.9.10</reflections.version>
		<jersey-bean-validation.version>2.21</jersey-bean-validation.version>
		<aspectj.version>1.9.5</aspectj.version>
		<jobmanager.version>0.1.0-SNAPSHOT</jobmanager.version>
		<jasypt.version>1.9.3</jasypt.version>
		<xstream.version>1.4.20</xstream.version>
	</properties>

	<modules>
		<module>exchangis-dao</module>
		<module>exchangis-project</module>
		<module>exchangis-datasource</module>
		<module>exchangis-engines</module>
		<module>exchangis-job</module>
		<module>exchangis-plugins</module>
		<module>exchangis-server</module>
		<module>assembly-package</module>
    </modules>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.scala-lang</groupId>
				<artifactId>scala-library</artifactId>
				<version>${scala.version}</version>
			</dependency>
			<dependency>
				<groupId>org.scala-lang</groupId>
				<artifactId>scala-compiler</artifactId>
				<version>${scala.version}</version>
			</dependency>
			<dependency>
				<groupId>org.scala-lang</groupId>
				<artifactId>scala-reflect</artifactId>
				<version>${scala.version}</version>
			</dependency>
			<dependency>
				<groupId>org.scala-lang</groupId>
				<artifactId>scalap</artifactId>
				<version>${scala.version}</version>
			</dependency>
			<dependency>
				<groupId>commons-lang</groupId>
				<artifactId>commons-lang</artifactId>
				<version>${commons.lang.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.linkis</groupId>
				<artifactId>linkis-mybatis</artifactId>
				<version>${linkis.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.linkis</groupId>
				<artifactId>linkis-module</artifactId>
				<version>${linkis.version}</version>
				<exclusions>
					<exclusion>
						<groupId>org.springframework.boot</groupId>
						<artifactId>spring-boot-starter-tomcat</artifactId>
					</exclusion>
					<exclusion>
						<artifactId>hibernate-validator</artifactId>
						<groupId>org.hibernate.validator</groupId>
					</exclusion>
				</exclusions>
			</dependency>
			<!--linkis http support-->
			<dependency>
				<groupId>org.apache.linkis</groupId>
				<artifactId>linkis-gateway-httpclient-support</artifactId>
				<version>${linkis.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.linkis</groupId>
				<artifactId>linkis-common</artifactId>
				<version>${linkis.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.linkis</groupId>
				<artifactId>linkis-protocol</artifactId>
				<version>${linkis.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.linkis</groupId>
				<artifactId>linkis-datasource-client</artifactId>
				<version>${linkis.datasource.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.linkis</groupId>
				<artifactId>linkis-metadata-query-common</artifactId>
				<version>${linkis.datasource.version}</version>
			</dependency>
			<dependency>
				<groupId>com.google.code.gson</groupId>
				<artifactId>gson</artifactId>
				<version>${gson.version}</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>${jackson-databind.version}</version>
			</dependency>
			<dependency>
				<groupId>org.codehaus.jackson</groupId>
				<artifactId>jackson-mapper-asl</artifactId>
				<version>${org.codehaus.jackson.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-math3</artifactId>
				<version>${commons.math.version}</version>
			</dependency>
			<dependency>
				<artifactId>xstream</artifactId>
				<groupId>com.thoughtworks.xstream</groupId>
				<version>${xstream.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>${maven-deploy-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>${maven-enforcer-plugin.version}</version>
					<executions>
						<execution>
							<id>enforce-versions</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<requireMavenVersion>
										<version>${maven.version}</version>
									</requireMavenVersion>
									<requireJavaVersion>
										<version>${java.version}</version>
									</requireJavaVersion>
									<bannedDependencies>
										<excludes>
											<exclude>org.jboss.netty</exclude>
										</excludes>
										<searchTransitive>true</searchTransitive>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>2.5.1</version>
					<configuration>
						<source>${jdk.compile.version}</source>
						<target>${jdk.compile.version}</target>
						<!--						<compilerArguments>-->
						<!--							<verbose/>-->
						<!--							<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>-->
						<!--						</compilerArguments>-->
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.3</version>
				</plugin>
				<plugin>
					<groupId>net.alchim31.maven</groupId>
					<artifactId>scala-maven-plugin</artifactId>
					<version>${scala-maven-plugin.version}</version>
<!--					<configuration>-->
<!--						<scalaVersion>${scala.version}</scalaVersion>-->
<!--						<recompileMode>incremental</recompileMode>-->
<!--						<args>-->
<!--							<arg>-unchecked</arg>-->
<!--							<arg>-deprecation</arg>-->
<!--							<arg>-feature</arg>-->
<!--							<arg>-explaintypes</arg>-->
<!--&lt;!&ndash;							<arg>-target:jvm-${java.version}</arg>&ndash;&gt;-->
<!--						</args>-->
<!--					</configuration>-->
					<executions>
						<execution>
							<id>eclipse-add-source</id>
							<goals>
								<goal>add-source</goal>
							</goals>
						</execution>
						<execution>
							<id>scala-compile-first</id>
							<phase>process-resources</phase>
							<goals>
								<goal>compile</goal>
							</goals>
						</execution>
						<execution>
							<id>scala-test-compile-first</id>
							<phase>process-test-resources</phase>
							<goals>
								<goal>testCompile</goal>
							</goals>
						</execution>
						<execution>
							<id>attach-scaladocs</id>
							<phase>verify</phase>
							<goals>
								<goal>doc-jar</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>${maven-jar-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>flatten-maven-plugin</artifactId>
					<version>${flatten-maven-plugin.version}</version>
					<configuration>
						<updatePomFile>true</updatePomFile>
						<flattenMode>resolveCiFriendliesOnly</flattenMode>
					</configuration>
					<executions>
						<execution>
							<id>flatten</id>
							<goals>
								<goal>flatten</goal>
							</goals>
							<phase>process-resources</phase>
						</execution>
						<execution>
							<id>flatten.clean</id>
							<goals>
								<goal>clean</goal>
							</goals>
							<phase>clean</phase>
						</execution>
					</executions>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>flatten-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>
