<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.xuxueli</groupId>
	<artifactId>xxl-job</artifactId>
	<version>3.3.2</version>
	<packaging>pom</packaging>

	<name>${project.artifactId}</name>
	<description>A distributed task scheduling framework.</description>
	<url>https://www.xuxueli.com/</url>

	<modules>
		<module>xxl-job-core</module>
		<module>xxl-job-admin</module>
		<module>xxl-job-executor-samples</module>
    </modules>

	<properties>
		<!-- env -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
		<maven.compiler.source>17</maven.compiler.source>
		<maven.compiler.target>17</maven.compiler.target>
		<maven.test.skip>true</maven.test.skip>
		<!-- plugin -->
		<maven-compiler-plugin.version>3.14.1</maven-compiler-plugin.version>
		<maven-source-plugin.version>3.4.0</maven-source-plugin.version>
		<maven-javadoc-plugin.version>3.12.0</maven-javadoc-plugin.version>
		<maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
		<central-publishing-maven-plugin.version>0.9.0</central-publishing-maven-plugin.version>
		<!-- base -->
		<slf4j-api.version>2.0.17</slf4j-api.version>
		<junit-jupiter.version>6.0.1</junit-jupiter.version>

		<!-- jakarta.annotation-api -->
		<jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version>

		<!-- spring -->
		<spring-boot.version>4.0.1</spring-boot.version>
		<spring.version>7.0.2</spring.version>
		<!-- mybatis & db -->
		<mybatis-spring-boot-starter.version>4.0.1</mybatis-spring-boot-starter.version>
		<mysql-connector-j.version>9.5.0</mysql-connector-j.version>

		<!-- net -->
		<netty.version>4.2.9.Final</netty.version>
		<!-- groovy -->
		<groovy.version>5.0.3</groovy.version>

		<!-- xxl-sso -->
		<xxl-sso.version>2.3.2</xxl-sso.version>
		<!-- xxl-tool -->
		<xxl-tool.version>2.4.2</xxl-tool.version>
		<!-- gson -->
		<gson.version>2.13.2</gson.version>

		<!-- spring-ai -->
		<spring-ai.version>2.0.0-M1</spring-ai.version>
		<!-- dify -->
		<dify-java-client.version>1.2.3</dify-java-client.version>
	</properties>

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

			<!-- slf4j -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j-api.version}</version>
			</dependency>
			<!-- slf4j-reload4j -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-reload4j</artifactId>
				<version>${slf4j-api.version}</version>
			</dependency>

			<!-- junit -->
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-engine</artifactId>
				<version>${junit-jupiter.version}</version>
			</dependency>

			<!-- jakarta -->
			<dependency>
				<groupId>jakarta.annotation</groupId>
				<artifactId>jakarta.annotation-api</artifactId>
				<version>${jakarta.annotation-api.version}</version>
			</dependency>

			<!-- netty -->
			<dependency>
				<groupId>io.netty</groupId>
				<artifactId>netty-codec-http</artifactId>
				<version>${netty.version}</version>
			</dependency>
			<!-- gson -->
			<dependency>
				<groupId>com.google.code.gson</groupId>
				<artifactId>gson</artifactId>
				<version>${gson.version}</version>
			</dependency>

			<!-- xxl-tool -->
			<dependency>
				<groupId>com.xuxueli</groupId>
				<artifactId>xxl-tool</artifactId>
				<version>${xxl-tool.version}</version>
			</dependency>

			<!-- groovy -->
			<dependency>
				<groupId>org.apache.groovy</groupId>
				<artifactId>groovy</artifactId>
				<version>${groovy.version}</version>
			</dependency>

			<!-- spring-context -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${spring.version}</version>
				<scope>provided</scope>
			</dependency>

			<!-- mybatis-starter：mybatis + mybatis-spring + hikari（default） -->
			<dependency>
				<groupId>org.mybatis.spring.boot</groupId>
				<artifactId>mybatis-spring-boot-starter</artifactId>
				<version>${mybatis-spring-boot-starter.version}</version>
			</dependency>
			<!-- mysql -->
			<dependency>
				<groupId>com.mysql</groupId>
				<artifactId>mysql-connector-j</artifactId>
				<version>${mysql-connector-j.version}</version>
			</dependency>

			<!-- xxl-job-core -->
			<dependency>
				<groupId>com.xuxueli</groupId>
				<artifactId>xxl-job-core</artifactId>
				<version>${project.parent.version}</version>
			</dependency>

			<!-- xxl-sso (xxl-tool、gson) -->
			<dependency>
				<groupId>com.xuxueli</groupId>
				<artifactId>xxl-sso-core</artifactId>
				<version>${xxl-sso.version}</version>
			</dependency>

			<!-- spring-ai -->
			<dependency>
				<groupId>org.springframework.ai</groupId>
				<artifactId>spring-ai-starter-model-ollama</artifactId>
				<version>${spring-ai.version}</version>
			</dependency>
			<!-- dify -->
			<dependency>
				<groupId>io.github.imfangs</groupId>
				<artifactId>dify-java-client</artifactId>
				<version>${dify-java-client.version}</version>
			</dependency>

		</dependencies>
	</dependencyManagement>

	<licenses>
		<license>
			<name>GNU General Public License version 3</name>
			<url>https://opensource.org/licenses/GPL-3.0</url>
		</license>
	</licenses>
	<scm>
		<tag>master</tag>
		<url>https://github.com/xuxueli/xxl-job.git</url>
		<connection>scm:git:https://github.com/xuxueli/xxl-job.git</connection>
		<developerConnection>scm:git:git@github.com:xuxueli/xxl-job.git</developerConnection>
	</scm>
	<developers>
		<developer>
			<id>XXL</id>
			<name>xuxueli</name>
			<email>931591021@qq.com</email>
			<url>https://github.com/xuxueli</url>
		</developer>
	</developers>

	<build>
		<plugins>
		</plugins>
	</build>

	<profiles>

		<profile>
			<id>release</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<modules>
				<module>xxl-job-core</module>
			</modules>
			<build>
				<plugins>
					<!-- Compiler -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-compiler-plugin</artifactId>
						<version>${maven-compiler-plugin.version}</version>
						<configuration>
							<source>${maven.compiler.source}</source>
							<target>${maven.compiler.target}</target>
							<parameters>true</parameters>
						</configuration>
					</plugin>
					<!-- Source -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<version>${maven-source-plugin.version}</version>
						<executions>
							<execution>
								<phase>package</phase>
								<goals>
									<goal>jar-no-fork</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<!-- Javadoc -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<version>${maven-javadoc-plugin.version}</version>
						<executions>
							<execution>
								<phase>package</phase>
								<goals>
									<goal>jar</goal>
								</goals>
								<configuration>
									<doclint>none</doclint>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<!-- GPG -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>${maven-gpg-plugin.version}</version>
						<configuration>
							<useAgent>false</useAgent>
						</configuration>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
					<!-- maven central -->
					<plugin>
						<groupId>org.sonatype.central</groupId>
						<artifactId>central-publishing-maven-plugin</artifactId>
						<version>${central-publishing-maven-plugin.version}</version>
						<extensions>true</extensions>
						<configuration>
							<publishingServerId>central</publishingServerId>
							<excludeArtifacts>
								<artifact>xxl-job-admin</artifact>
								<artifact>xxl-job-executor-samples</artifact>
								<artifact>xxl-job-executor-sample-frameless</artifact>
								<artifact>xxl-job-executor-sample-springboot</artifact>
								<artifact>xxl-job-executor-sample-springboot-ai</artifact>
							</excludeArtifacts>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>