<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.changhu</groupId>
    <artifactId>policeSecurityServer</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>policeSecurityServer</name>

    <properties>
        <java.version>17</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring.boot.version>3.2.2</spring.boot.version>

        <hutool.version>5.8.27</hutool.version>
        <knife4j.version>4.5.0</knife4j.version>
        <zxing.version>3.3.3</zxing.version>
        <pinyin4j.version>2.5.1</pinyin4j.version>
        <fastjson2.version>2.0.50</fastjson2.version>
        <easyexcel.version>3.3.4</easyexcel.version>
        <mysql.driver.version>8.0.32</mysql.driver.version>
        <mybatis.plus.version>3.5.7</mybatis.plus.version>
        <druid.version>1.2.20</druid.version>
        <minio.version>8.4.3</minio.version>
        <okhttp.version>4.8.1</okhttp.version>
        <sa.token.version>1.38.0</sa.token.version>
        <wx.miniapp.version>4.6.0</wx.miniapp.version>
    </properties>

    <dependencies>
        <!--    spring boot web    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!--过滤系统自带日志-->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
                <!-- 去掉Jackson依赖，用fastjson -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-json</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--    监控、追踪、审计、控制    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--   自动注解配置     -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <!--    log4j2日志    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <!--    单元测试    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--    spring boot websocket支持    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <!--    spring boot aop支持    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <!--    redis缓存    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!-- 提供Redis连接池 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>
        <!--    参数校验-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <!--    lombok工具 https://projectlombok.org/    -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--    knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案 https://github.com/xiaoymin/knife4j    -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
            <version>${knife4j.version}</version>
        </dependency>
        <!--    fastjson2 对 SpringFramework 扩展 https://alibaba.github.io/fastjson2/ -->
        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2-extension-spring6</artifactId>
            <version>${fastjson2.version}</version>
        </dependency>
        <!--    easyexcel https://easyexcel.opensource.alibaba.com/-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>${easyexcel.version}</version>
        </dependency>
        <!--    hutool工具 https://doc.hutool.cn/pages/index/-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>${hutool.version}</version>
        </dependency>
        <!--    hutool使用CaptchaUtil需要导入第三方包 -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>${zxing.version}</version>
        </dependency>
        <!--    hutool使用PinyinUtil需要导入第三方包 -->
        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>${pinyin4j.version}</version>
        </dependency>
        <!-- Sa-Token 权限认证，在线文档：https://sa-token.cc -->
        <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-spring-boot3-starter</artifactId>
            <version>${sa.token.version}</version>
        </dependency>
        <!-- Sa-Token 整合 Redis  -->
        <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-redis</artifactId>
            <version>${sa.token.version}</version>
        </dependency>
        <!-- Sa-Token 整合 jwt -->
        <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-jwt</artifactId>
            <version>${sa.token.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>cn.hutool</groupId>
                    <artifactId>hutool-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>cn.hutool</groupId>
                    <artifactId>hutool-crypto</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>cn.hutool</groupId>
                    <artifactId>hutool-json</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>cn.hutool</groupId>
                    <artifactId>hutool-jwt</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--    mysql 驱动 注:最新版本的MySQL Connector/J已经迁移到了符合反转DNS规范的Maven坐标 因此，您需要按照新的坐标来引用该依赖。根据错误消息中提供的信息，将mysql:mysql-connector-java替换为com.mysql:mysql-connector-j，版本保持不变。-->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>${mysql.driver.version}</version>
        </dependency>
        <!--    druid数据库连接池 https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-3-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <!--    mybatis plus https://baomidou.com/pages/24112f/-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>${mybatis.plus.version}</version>
        </dependency>
        <!--     minio对象存储 https://www.minio.org.cn/    -->
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>${minio.version}</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>${okhttp.version}</version>
        </dependency>
        <!--    微信小程序开发工具    -->
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-miniapp</artifactId>
            <version>${wx.miniapp.version}</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>osgeo</id>
            <name>OSGeo Release Repository</name>
            <url>https://repo.osgeo.org/repository/release/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
        <repository>
            <id>osgeo-snapshot</id>
            <name>OSGeo Snapshot Repository</name>
            <url>https://repo.osgeo.org/repository/snapshot/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>

    <dependencyManagement>
        <dependencies>
            <!--            spring boot版本依赖管理-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.11.0</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                    <compilerArgs>
                        <arg>
                            -parameters
                        </arg>
                    </compilerArgs>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring.boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

        <!--    定义资源目录    -->
        <resources>
            <!--     ${project.basedir}/src/main/resources/${profiles.environment} 下的文件输出到根目录下       -->
            <resource>
                <directory>${project.basedir}/src/main/resources/${profiles.environment}</directory>
            </resource>
            <!--     ${project.basedir}/src/main/resources/META-INF 下的文件输出到 META-INF 下       -->
            <resource>
                <directory>${project.basedir}/src/main/resources/META-INF</directory>
                <targetPath>META-INF</targetPath>
            </resource>
            <!--     ${project.basedir}/src/main/resources/static 下的文件输出到 static 下       -->
            <resource>
                <directory>${project.basedir}/src/main/resources/static</directory>
                <targetPath>static</targetPath>
            </resource>
            <!--     ${project.basedir}/src/main/resources/conf 下的文件输出到 conf 下       -->
            <resource>
                <directory>${project.basedir}/src/main/resources/conf</directory>
                <targetPath>conf</targetPath>
            </resource>
            <!--     ${project.basedir}/src/main/resources/mapper 下的文件输出到 mapper 下       -->
            <resource>
                <directory>${project.basedir}/src/main/resources/mapper</directory>
                <targetPath>mapper</targetPath>
            </resource>
            <resource>
                <directory>${project.basedir}/src/main/resources/templates</directory>
                <targetPath>templates</targetPath>
            </resource>
        </resources>
    </build>

    <profiles>
        <!--开发环境-->
        <profile>
            <id>dev</id>
            <properties>
                <profiles.environment>env/dev</profiles.environment>
            </properties>
            <activation>
                <!--默认激活本地环境-->
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>

        <!--本地环境-->
        <profile>
            <id>local</id>
            <properties>
                <profiles.environment>env/local</profiles.environment>
            </properties>
        </profile>

        <!--线上环境-->
        <profile>
            <id>prod</id>
            <properties>
                <profiles.environment>env/prod</profiles.environment>
            </properties>
        </profile>
    </profiles>
</project>
