<?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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.jjb.saas</groupId>
        <artifactId>jjb-saas-parent</artifactId>
        <version>2.2.0-SNAPSHOT</version>
    </parent>
    <groupId>org.qinan</groupId>
    <artifactId>safety-eval-service</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>safety-eval-service</name>
    <description>安全评价业务服务 - 基于GBS底座DDD分层架构</description>

    <modules>
        <module>safety-eval-start</module>
        <module>safety-eval-adapter</module>
        <module>safety-eval-app</module>
        <module>safety-eval-client</module>
        <module>safety-eval-domain</module>
        <module>safety-eval-infrastructure</module>
    </modules>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- Spring Boot -->
        <spring-boot.version>2.7.18</spring-boot.version>

        <!-- Dubbo -->
        <dubbo.version>3.2.9</dubbo.version>

        <!-- MyBatis Plus -->
        <mybatis-plus.version>3.5.5</mybatis-plus.version>

        <!-- Swagger -->
        <swagger.version>1.6.14</swagger.version>

        <!-- Lombok -->
        <lombok.version>1.18.30</lombok.version>

        <jjb-saas-system-client.version>1.7.1.1-SNAPSHOT</jjb-saas-system-client.version>

        <!-- X File Storage（多OSS统一文件存储） -->
        <x-file-storage.version>2.2.0</x-file-storage.version>

        <!-- Aliyun OSS SDK -->
        <aliyun-oss.version>3.17.4</aliyun-oss.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.jjb.saas</groupId>
            <artifactId>jjb-saas-system-client</artifactId>
            <version>1.7.1.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!-- Spring Boot BOM -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- 本项目内部模块 -->
            <dependency>
                <groupId>org.qinan</groupId>
                <artifactId>safety-eval-start</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.qinan</groupId>
                <artifactId>safety-eval-adapter</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.qinan</groupId>
                <artifactId>safety-eval-app</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.qinan</groupId>
                <artifactId>safety-eval-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.qinan</groupId>
                <artifactId>safety-eval-domain</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.qinan</groupId>
                <artifactId>safety-eval-infrastructure</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- Dubbo -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>${dubbo.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>${dubbo.version}</version>
            </dependency>

            <!-- Jackson 统一版本 2.13.5（显式声明覆盖父POM老版本 2.11.1，解决 NoSuchFieldError: ALWAYS） -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jsr310</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jdk8</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-guava</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-yaml</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-properties</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-csv</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-xml</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-parameter-names</artifactId>
                <version>2.13.5</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-jaxb-annotations</artifactId>
                <version>2.13.5</version>
            </dependency>

            <!-- MyBatis Plus -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>
            <!-- 强制对齐 mybatis-plus-annotation 版本，避免 mybatis-plus:3.5.5 传递引入 3.5.3.1 导致 NoSuchFieldError: ALWAYS -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-annotation</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>

            <!-- Swagger -->
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger.version}</version>
            </dependency>

            <!-- Lombok -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>

            <!-- X File Storage（多OSS统一文件存储） -->
            <dependency>
                <groupId>org.dromara.x-file-storage</groupId>
                <artifactId>x-file-storage-spring</artifactId>
                <version>${x-file-storage.version}</version>
            </dependency>

            <!-- Aliyun OSS SDK -->
            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${aliyun-oss.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <repositories>
        <repository>
            <id>gbs-snapshots</id>
            <name>GBS Snapshots Repository</name>
            <url>http://192.168.20.100:8578/repository/maven-snapshots/</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
        <repository>
            <id>gbs-releases</id>
            <name>GBS Releases Repository</name>
            <url>http://192.168.20.100:8578/repository/maven-releases/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>