<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-dependencies</artifactId>
    <version>${revision}</version>
    <packaging>pom</packaging>
    <name>sa-token-dependencies</name>
    <description>Sa-Token Dependencies</description>

    <properties>
        <revision>1.38.0</revision>
		
		<!-- 统一定义依赖版本号 -->
		<springboot.version>2.5.15</springboot.version>
		<springboot3.version>3.0.1</springboot3.version>
		<reactor-core.version>3.1.4.RELEASE</reactor-core.version>
		<jackson-databind.version>2.13.4.1</jackson-databind.version>	
		<jackson-datatype-jsr310.version>2.11.2</jackson-datatype-jsr310.version>
		<servlet-api.version>3.1.0</servlet-api.version>
		<jakarta-servlet-api.version>6.0.0</jakarta-servlet-api.version>
		<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
		<solon.version>2.7.0</solon.version>
		<noear-redisx.version>1.6.2</noear-redisx.version>
		<noear-snack3.version>3.2.88</noear-snack3.version>
		<jfinal.version>4.9.17</jfinal.version>
		<jboot.version>3.14.4</jboot.version>
		<commons-pool2.version>2.5.0</commons-pool2.version>
		<dubbo.version>2.7.21</dubbo.version>
		<grpc-spring-boot-starter.version>2.10.1.RELEASE</grpc-spring-boot-starter.version>
		<hutool-jwt.version>5.8.20</hutool-jwt.version>
		<jjwt.version>0.9.1</jjwt.version>
		<fastjson.version>1.2.83</fastjson.version>
		<fastjson2.version>2.0.15</fastjson2.version>
		<redisson.version>3.19.0</redisson.version>
    </properties>

    <dependencyManagement>
        <dependencies>
        
			<!-- ****************** sa-token-starter 相关依赖 ****************** -->
	        <!-- Servlet API -->
	        <dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>javax.servlet-api</artifactId>
				<version>${servlet-api.version}</version>
			</dependency>
			
			<!-- Jakarta Servlet API -->
			<dependency>
				<groupId>jakarta.servlet</groupId>
				<artifactId>jakarta.servlet-api</artifactId>
				<version>${jakarta-servlet-api.version}</version>
			</dependency>

			<!-- spring-boot-starter-web -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-web</artifactId>
				<version>${springboot.version}</version>
			</dependency>
		
			<!-- spring-boot-starter -->
	        <dependency>
	            <groupId>org.springframework.boot</groupId>
	            <artifactId>spring-boot-starter</artifactId>
				<version>${springboot.version}</version>
	        </dependency>
	        
			<!-- spring-web -->
		    <!-- <dependency>
		    	<groupId>org.springframework</groupId>
				<artifactId>spring-web</artifactId>
				<version>5.3.7</version>
		    </dependency> -->
		    
			<!-- reactor-core -->
		    <dependency>
		    	<groupId>io.projectreactor</groupId>
		    	<artifactId>reactor-core</artifactId>
		   		<version>${reactor-core.version}</version>
		    </dependency>
		    
			<!-- jackson-databind -->
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
	      	  	<version>${jackson-databind.version}</version>	
			</dependency>
			
			<!-- solon -->
	        <dependency>
	            <groupId>org.noear</groupId>
	            <artifactId>solon</artifactId>
	            <version>${solon.version}</version>
	        </dependency>

			<!-- snack3 -->
			<dependency>
				<groupId>org.noear</groupId>
				<artifactId>snack3</artifactId>
				<version>${noear-snack3.version}</version>
			</dependency>
			
			<!-- jboot -->
	        <dependency>
	            <groupId>io.jboot</groupId>
	            <artifactId>jboot</artifactId>
	            <version>${jboot.version}</version>
	        </dependency>
	        
	        <!-- jfinal -->
	        <dependency>
	            <groupId>com.jfinal</groupId>
	            <artifactId>jfinal</artifactId>
	            <version>${jfinal.version}</version>
	        </dependency>
			
			<!-- test -->
			<!-- <dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-test</artifactId>
				<version>${springboot.version}</version>
			</dependency> -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-configuration-processor</artifactId>
				<version>${springboot.version}</version>
			</dependency>
			
			<!-- ****************** sa-token-plugin 相关依赖 ****************** -->
			
	        <dependency>
	            <groupId>org.springframework.boot</groupId>
	            <artifactId>spring-boot-starter-data-redis</artifactId>
				<version>${springboot.version}</version>
	        </dependency>

			<!-- Redisson 相关操作API -->
			<dependency>
				<groupId>org.redisson</groupId>
				<artifactId>redisson</artifactId>
				<version>${redisson.version}</version>
			</dependency>

			<dependency>
				<groupId>org.redisson</groupId>
				<artifactId>redisson-spring-boot-starter</artifactId>
				<version>${redisson.version}</version>
			</dependency>
	        
			<!-- jackson-datatype-jsr310 -->
			<dependency>
				<groupId>com.fasterxml.jackson.datatype</groupId>
				<artifactId>jackson-datatype-jsr310</artifactId>
				<version>${jackson-datatype-jsr310.version}</version>
			</dependency>
			
	        <!-- fastjson -->
	        <dependency>
	            <groupId>com.alibaba</groupId>
	            <artifactId>fastjson</artifactId>
	            <version>${fastjson.version}</version>
	        </dependency>
        
	        <!-- fastjson2 -->
	        <dependency>
				<groupId>com.alibaba.fastjson2</groupId>
				<artifactId>fastjson2</artifactId>
				<version>${fastjson2.version}</version>
			</dependency>
			
			<!-- noear-redisx -->
	        <dependency>
	            <groupId>org.noear</groupId>
	            <artifactId>redisx</artifactId>
	            <version>${noear-redisx.version}</version>
	        </dependency>
	
			<!-- solon-test -->
	        <dependency>
	            <groupId>org.noear</groupId>
	            <artifactId>solon-test</artifactId>
	            <version>${solon.version}</version>
	        </dependency>
			
	        <!-- redis pool -->
			<dependency>
			    <groupId>org.apache.commons</groupId>
			    <artifactId>commons-pool2</artifactId>
				<version>${commons-pool2.version}</version>
			</dependency>
			
			<!-- thymeleaf -->
			<dependency>
				<groupId>org.thymeleaf</groupId>
				<artifactId>thymeleaf</artifactId>
				<version>${thymeleaf.version}</version>
		    </dependency>
		    
			<!-- 视图引擎 -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-thymeleaf</artifactId>
				<version>${springboot.version}</version>
			</dependency>
			
			<!-- spring-boot-starter-aop -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-aop</artifactId>
				<version>${springboot.version}</version>
			</dependency>

			<!-- spring-boot-starter-actuator -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-actuator</artifactId>
				<version>${springboot.version}</version>
			</dependency>
			
			<!-- hutool-jwt -->
	        <dependency>
			    <groupId>cn.hutool</groupId>
			    <artifactId>hutool-jwt</artifactId>
			    <version>${hutool-jwt.version}</version>
			</dependency>
			
			<!-- dubbo -->
		    <dependency>
				<groupId>org.apache.dubbo</groupId>
				<artifactId>dubbo</artifactId>
				<version>${dubbo.version}</version>
			</dependency>
	    
	    	<!-- grpc-spring-boot-starter -->
	        <dependency>
	            <groupId>net.devh</groupId>
	            <artifactId>grpc-spring-boot-starter</artifactId>
	            <version>${grpc-spring-boot-starter.version}</version>
	        </dependency>
        
	        <dependency>
				<groupId>io.jsonwebtoken</groupId>
				<artifactId>jjwt</artifactId>
				<version>${jjwt.version}</version>
	        </dependency>

			<!-- sa-token 自身依赖 -->
			<dependency>
				<groupId>cn.dev33</groupId>
				<artifactId>sa-token-bom</artifactId>
				<version>${revision}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

        </dependencies>
    </dependencyManagement>

	<!-- 父仓库 -->
	<parent>
		<groupId>org.sonatype.oss</groupId>
		<artifactId>oss-parent</artifactId>
		<version>7</version>
		<relativePath/>
	</parent>
	
	<!-- 项目构建 -->
	<build>
	   <plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.10.1</version>
			<configuration>
				<source>1.8</source>
				<target>1.8</target>
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>
        
        <!-- 统一版本号管理 -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>flatten-maven-plugin</artifactId>
            <version>1.2.7</version>
            <configuration>
                <updatePomFile>true</updatePomFile>
                <flattenMode>resolveCiFriendliesOnly</flattenMode>
            </configuration>
            <executions>
                <execution>
                    <id>flatten</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>flatten</goal>
                    </goals>
                </execution>
                <execution>
                    <id>flatten.clean</id>
                    <phase>clean</phase>
                    <goals>
                        <goal>clean</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        
	   </plugins>
	   <pluginManagement>
		   	<plugins>
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-enforcer-plugin</artifactId>
										<versionRange>[1.0.0,)</versionRange>
										<goals>
											<goal>enforce</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
	   </pluginManagement>
	</build>
	
</project>