<?xml version="1.0" encoding="UTF-8"?>
<!--
    Description: Latke parent POM.
    Version: 1.4.0.7, Oct 13, 2023
    Author: Liang Ding
-->
<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>org.b3log</groupId>
    <artifactId>latke-parent</artifactId>
    <version>3.4.30</version>
    <packaging>pom</packaging>
    <name>Latke Parent</name>
    <url>https://github.com/88250/latke</url>
    <description>一款以 JSON 为主的 Java Web 框架。</description>
    <inceptionYear>2009</inceptionYear>

    <modules>
        <module>latke-core</module>
        <module>latke-repository-h2</module>
        <module>latke-repository-mysql</module>
    </modules>

    <organization>
        <name>B3log</name>
        <url>https://b3log.org</url>
    </organization>

    <licenses>
        <license>
            <name>木兰宽松许可证, 第2版</name>
            <url>http://license.coscl.org.cn/MulanPSL2</url>
        </license>
    </licenses>

    <properties>
        <freemarker.version>2.3.32</freemarker.version>
        <commons-io.version>2.11.0</commons-io.version>
        <commons-lang.version>3.12.0</commons-lang.version>
        <commons-codec.version>1.15</commons-codec.version>
        <commons-exec.version>1.3</commons-exec.version>
        <javassist.version>3.29.2-GA</javassist.version>
        <log4j2.version>2.20.0</log4j2.version>
        <netty.version>4.1.100.Final</netty.version>
        <tika.version>2.8.0</tika.version>

        <hikaricp.version>5.0.1</hikaricp.version>
        <jedis.version>4.2.3</jedis.version>
        <guava.version>32.1.3-jre</guava.version>

        <license-maven-plugin.version>3.0</license-maven-plugin.version>
        <maven-surefire-plugin.version>2.22.1</maven-surefire-plugin.version>
        <maven-source-plugin.version>3.0.1</maven-source-plugin.version>
        <nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
        <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
        <testng.version>7.1.0</testng.version>

        <maven.compiler.target>11</maven.compiler.target>
        <maven.compiler.source>11</maven.compiler.source>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <scm>
        <connection>scm:git:git@github.com:88250/latke.git</connection>
        <developerConnection>scm:git:git@github.com:88250/latke.git</developerConnection>
        <url>git@github.com:88250/latke.git</url>
        <tag>latke-parent-3.4.30</tag>
    </scm>

    <developers>
        <developer>
            <id>88250</id>
            <name>Liang Ding</name>
            <email>845765@qq.com</email>
            <url>http://88250.b3log.org</url>
            <roles>
                <role>Lead</role>
                <role>Initial Committer</role>
            </roles>
            <organization>B3log</organization>
            <organizationUrl>https://b3log.org</organizationUrl>
            <timezone>+8</timezone>
        </developer>

        <developer>
            <id>mainlove</id>
            <name>mainlove</name>
            <url>https://ld246.com/member/mainlove</url>
            <roles>
                <role>Committer</role>
            </roles>
            <organization>B3log</organization>
            <organizationUrl>https://b3log.org</organizationUrl>
            <timezone>+8</timezone>
        </developer>
    </developers>

    <issueManagement>
        <system>Github Issues</system>
        <url>https://github.com/88250/latke/issues</url>
    </issueManagement>

    <distributionManagement>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <dependencyManagement>
        <dependencies>

            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-http</artifactId>
                <version>${netty.version}</version>
            </dependency>

            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-handler</artifactId>
                <version>${netty.version}</version>
            </dependency>

            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-epoll</artifactId>
                <version>${netty.version}</version>
                <classifier>linux-x86_64</classifier>
            </dependency>

            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-kqueue</artifactId>
                <version>${netty.version}</version>
                <classifier>osx-x86_64</classifier>
            </dependency>

            <dependency>
                <groupId>org.apache.tika</groupId>
                <artifactId>tika-core</artifactId>
                <version>${tika.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j2.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>${log4j2.version}</version>
            </dependency>

            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>${testng.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>${freemarker.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-exec</artifactId>
                <version>${commons-exec.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons-lang.version}</version>
            </dependency>

            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>${javassist.version}</version>
            </dependency>

            <dependency>
                <groupId>com.zaxxer</groupId>
                <artifactId>HikariCP</artifactId>
                <version>${hikaricp.version}</version>
            </dependency>

            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>${jedis.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.json</groupId>
                        <artifactId>json</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>

            <plugin>
                <groupId>com.mycila</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <version>${license-maven-plugin.version}</version>
                <configuration>
                    <basedir>${basedir}</basedir>
                    <header>src/main/resources/etc/header.txt</header>
                    <quiet>false</quiet>
                    <failIfMissing>true</failIfMissing>
                    <aggregate>true</aggregate>
                    <strictCheck>true</strictCheck>
                    <includes>
                        <include>**/src/main/java/**/*.java</include>
                        <include>**/src/test/java/**/*.java</include>
                        <include>**/src/main/resources/*.properties</include>
                        <include>**/src/test/resources/*.properties</include>
                    </includes>
                    <excludes>
                        <exclude>**/src/main/java/**/package-info.java</exclude>
                        <exclude>**/src/main/java/org/json/*.java</exclude>
                    </excludes>

                    <useDefaultExcludes>true</useDefaultExcludes>
                    <mapping>
                        <java>SLASHSTAR_STYLE</java>
                    </mapping>
                    <useDefaultMapping>true</useDefaultMapping>
                    <properties>
                        <year>2009-present</year>
                        <devTeam>b3log.org</devTeam>
                    </properties>
                    <encoding>UTF-8</encoding>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>format</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven-surefire-plugin.version}</version>
                <configuration>
                    <skipTests>false</skipTests>
                    <parallel>methods</parallel>
                    <threadCount>20</threadCount>
                    <useSystemClassLoader>false</useSystemClassLoader>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>${maven-source-plugin.version}</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

    <profiles>
        <profile>
            <id>ci</id>
        </profile>

        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>${nexus-staging-maven-plugin.version}</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>${maven-gpg-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <repositories>
                <repository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                </repository>
            </repositories>

            <pluginRepositories>
                <pluginRepository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>

</project>
