<?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="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>

    <parent>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-parent</artifactId>
        <version>1</version>
        <relativePath>parent</relativePath>
    </parent>

    <artifactId>apache-ignite</artifactId>
    <version>3.0.0-alpha2</version>
    <packaging>pom</packaging>

    <modules>
        <module>modules/affinity</module>
        <module>modules/api</module>
        <module>modules/baseline</module>
        <module>modules/bytecode</module>
        <module>modules/cli</module>
        <module>modules/cli-common</module>
        <module>modules/configuration</module>
        <module>modules/configuration-annotation-processor</module>
        <module>modules/core</module>
        <module>modules/metastorage</module>
        <module>modules/metastorage-client</module>
        <module>modules/metastorage-common</module>
        <module>modules/metastorage-server</module>
        <module>modules/network</module>
        <module>modules/network-annotation-processor</module>
        <module>modules/network-api</module>
        <module>modules/raft</module>
        <module>modules/raft-client</module>
        <module>modules/rest</module>
        <module>modules/runner</module>
        <module>modules/schema</module>
        <module>modules/table</module>
        <module>modules/vault</module>
        <module>examples</module>
    </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <appendAssemblyId>false</appendAssemblyId>
                            <descriptors>
                                <descriptor>assembly/assembly.xml</descriptor>
                            </descriptors>
                            <finalName>apache-ignite-${project.version}</finalName>
                            <attach>false</attach>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
