<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>powerjob</artifactId>
        <groupId>tech.powerjob</groupId>
        <version>4.3.6</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>powerjob-server</artifactId>
    <version>4.3.6</version>
    <packaging>pom</packaging>

    <modules>
        <module>powerjob-server-common</module>
        <module>powerjob-server-remote</module>
        <module>powerjob-server-persistence</module>
        <module>powerjob-server-starter</module>
        <module>powerjob-server-extension</module>
        <module>powerjob-server-migrate</module>
        <module>powerjob-server-core</module>
        <module>powerjob-server-monitor</module>
    </modules>


    <properties>
        <springboot.version>2.7.14</springboot.version>

        <!-- MySQL version that corresponds to spring-boot-dependencies version. -->
        <mysql.version>8.0.33</mysql.version>
        <ojdbc.version>19.7.0.0</ojdbc.version>
        <mssql-jdbc.version>7.4.1.jre8</mssql-jdbc.version>
        <db2-jdbc.version>11.5.0.0</db2-jdbc.version>
        <postgresql.version>42.6.0</postgresql.version>
        <h2.db.version>2.2.220</h2.db.version>
        <mongodb-driver-sync.version>4.10.2</mongodb-driver-sync.version>

        <zip4j.version>2.11.2</zip4j.version>
        <jgit.version>5.13.2.202306221912-r</jgit.version>
        <mvn.invoker.version>3.0.1</mvn.invoker.version>
        <commons.net.version>3.9.0</commons.net.version>
        <fastjson.version>1.2.83</fastjson.version>
        <dingding.version>1.0.1</dingding.version>

        <!-- skip this module when deploying. -->
        <maven.deploy.skip>true</maven.deploy.skip>

        <groovy.version>3.0.10</groovy.version>
        <cron-utils.version>9.2.1</cron-utils.version>

        <powerjob-common.version>4.3.6</powerjob-common.version>
        <powerjob-remote-impl-http.version>4.3.6</powerjob-remote-impl-http.version>
        <powerjob-remote-impl-akka.version>4.3.6</powerjob-remote-impl-akka.version>
        <springdoc-openapi-ui.version>1.6.14</springdoc-openapi-ui.version>
        <aliyun-sdk-oss.version>3.17.1</aliyun-sdk-oss.version>
        <minio.version>8.5.2</minio.version>
        <commons-collections4.version>4.4</commons-collections4.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>tech.powerjob</groupId>
                <artifactId>powerjob-server-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>tech.powerjob</groupId>
                <artifactId>powerjob-server-monitor</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>tech.powerjob</groupId>
                <artifactId>powerjob-server-extension</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>tech.powerjob</groupId>
                <artifactId>powerjob-server-remote</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>tech.powerjob</groupId>
                <artifactId>powerjob-server-persistence</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>tech.powerjob</groupId>
                <artifactId>powerjob-server-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>tech.powerjob</groupId>
                <artifactId>powerjob-server-migrate</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>tech.powerjob</groupId>
                <artifactId>powerjob-server-starter</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- 存储扩展-MongoDB，未使用可移除 -->
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongodb-driver-sync</artifactId>
                <version>${mongodb-driver-sync.version}</version>
            </dependency>
            <!-- 存储扩展-阿里云OSS，未使用可移除 -->
            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${aliyun-sdk-oss.version}</version>
            </dependency>
            <!-- 存储扩展-Minio，未使用可移除 -->
            <dependency>
                <groupId>io.minio</groupId>
                <artifactId>minio</artifactId>
                <version>${minio.version}</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>${commons-collections4.version}</version>
            </dependency>


        </dependencies>
    </dependencyManagement>

    <dependencies>

        <!-- 网络层 -->
        <dependency>
            <groupId>tech.powerjob</groupId>
            <artifactId>powerjob-common</artifactId>
            <version>${powerjob-common.version}</version>
        </dependency>
        <dependency>
            <groupId>tech.powerjob</groupId>
            <artifactId>powerjob-remote-impl-http</artifactId>
            <version>${powerjob-remote-impl-http.version}</version>
        </dependency>
        <dependency>
            <groupId>tech.powerjob</groupId>
            <artifactId>powerjob-remote-impl-akka</artifactId>
            <version>${powerjob-remote-impl-akka.version}</version>
        </dependency>

        <!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <!-- oracle -->
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>${ojdbc.version}</version>
        </dependency>
        <dependency>
            <groupId>com.oracle.database.nls</groupId>
            <artifactId>orai18n</artifactId>
            <version>${ojdbc.version}</version>
        </dependency>
        <!-- sqlserver -->
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>${mssql-jdbc.version}</version>
        </dependency>
        <!-- db2 -->
        <dependency>
            <groupId>com.ibm.db2</groupId>
            <artifactId>jcc</artifactId>
            <version>${db2-jdbc.version}</version>
        </dependency>
        <!-- postgresql -->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>${postgresql.version}</version>
        </dependency>
        <!-- h2 database -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>${h2.db.version}</version>
        </dependency>

        <!-- SpringBoot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>${springboot.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-undertow</artifactId>
            <version>${springboot.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
            <version>${springboot.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>${springboot.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>${springboot.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
            <version>${springboot.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>${springboot.version}</version>
            <scope>test</scope>
        </dependency>

        <!-- zip4j(Zip support) -->
        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>${zip4j.version}</version>
        </dependency>

        <!-- jGit(Git support) -->
        <dependency>
            <groupId>org.eclipse.jgit</groupId>
            <artifactId>org.eclipse.jgit</artifactId>
            <version>${jgit.version}</version>
        </dependency>

        <!-- Time tools(NTP support) -->
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>${commons.net.version}</version>
        </dependency>

        <!-- Maven Invoker(used for maven compilation) -->
        <dependency>
            <groupId>org.apache.maven.shared</groupId>
            <artifactId>maven-invoker</artifactId>
            <version>${mvn.invoker.version}</version>
        </dependency>

        <!-- fastJson(used for serialization of DAG) -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>

        <!-- DingTalk SDK. -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>alibaba-dingtalk-service-sdk</artifactId>
            <version>${dingding.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.cronutils</groupId>
            <artifactId>cron-utils</artifactId>
            <version>${cron-utils.version}</version>
        </dependency>

        <!-- OPEN API -->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>${springdoc-openapi-ui.version}</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-jsr223 -->
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-jsr223</artifactId>
            <version>${groovy.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-json -->
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-json</artifactId>
            <version>${groovy.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>