<?xml version="1.0"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>mbap</groupId>
		<artifactId>mbap-parent</artifactId>
		<version>20210322091300</version>
	</parent>
	<artifactId>mbap-gateway</artifactId>
 	<version>${versionId}</version>
	<name>mbap-gateway</name>
	<url>http://maven.apache.org</url>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<dependencies>
	 	<!-- mbap-mybatis包 -->
        <dependency>
        	 <groupId>mbap</groupId>
  			<artifactId>mbap-mybatis</artifactId>
		 <!-- <version>${versionId}</version> -->
	     <version>r1368.V20210913074310</version>
        </dependency>
		<!-- gateway网关支持 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-gateway</artifactId>
		</dependency>
		<!-- 配置文件读取解析 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
		<!-- （健康监控）配置和使用:可以对应用系统进行配置查看、相关功能统计等 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<!--必备: 注册中心客户端 -->
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
		</dependency>
		<!--必备: 配置中心客户端 -->
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
		</dependency>
		<!-- 代码优化工具 -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
		<!-- webflux,gateway是基于webflux开发的不能加web依赖，只能加webflux依赖 -->
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
        <!-- oauth2资源端配置 -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-oauth2-resource-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-oauth2-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-oauth2-jose</artifactId>
        </dependency>
        <!-- jwt 生成工具 -->
        <dependency>
            <groupId>com.nimbusds</groupId>
            <artifactId>nimbus-jose-jwt</artifactId>
            <version>8.16</version>
        </dependency>
        <!-- redis 存储 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!-- Hutool是一个小而全的Java工具类库  官方文档：https://www.hutool.cn/ -->
        <dependency>
        	<groupId>cn.hutool</groupId>
        	<artifactId>hutool-all</artifactId>
        	<version>5.5.6</version>
        </dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		
		 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency> 
        
        <!--RequestRateLimiter限流-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis-reactive</artifactId>
		</dependency>
		<!-- 熔断、降级 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
		</dependency>
		<!-- 达梦数据库配置 -->
		<!-- <dependency>
	     <groupId>com.dameng</groupId>
	     <artifactId>dm-jdbc</artifactId>
		 <version>1.8</version>
		 <scope>system</scope>
		 <systemPath>D:/.m2/repository/DmJdbcDriver18.jar</systemPath>
	  </dependency>-->
	</dependencies>
	<build>
		<finalName>mbap-gateway</finalName>
		<plugins>
			<!-- <plugin>
			    <groupId>org.springframework.boot</groupId>
			    <artifactId>spring-boot-maven-plugin</artifactId>
			    打包时添加本地jar
			   <configuration >
		            <includeSystemScope >true</includeSystemScope >
		       </configuration >
			</plugin> -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<!-- sonar扫描配置 -->
			<plugin>
	            <groupId>org.sonarsource.scanner.maven</groupId>
	            <artifactId>sonar-maven-plugin</artifactId>
	            <version>3.4.0.905</version>
	        </plugin>
			<!-- <plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin> -->
		</plugins>
		<!-- <resources>
            <resource>
                <directory>src/main/resource</directory>
                <includes>
                    <include>*.yml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources> -->
	</build>
	
	<scm>
		<connection>scm:svn:svn://192.168.100.42:3693/mbap_demo/mbap.parent/mbap-gateway</connection>
	</scm>
	<profiles>
		<!-- r2 parent,r2repo,r2zip都依赖 -->
		<profile>
			<activation>
				<property>
					<name>r2parent</name>
					<value>true</value>
				</property>
			</activation>
			<properties>
				<versionId>r${svn.revision}.V${timestamp}</versionId>
			</properties>
			<build>
				<plugins>
					<!-- Use the svn revision number for the built artifact -->
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>buildnumber-maven-plugin</artifactId>
						<version>1.4</version>
						<executions>
							<execution>
								<phase>validate</phase>
								<goals>
									<goal>create</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<buildNumberPropertyName>svn.revision</buildNumberPropertyName>
							<doCheck>false</doCheck>
							<doUpdate>true</doUpdate>
							<providerImplementations>
								<svn>javasvn</svn>
							</providerImplementations>
						</configuration>
						<dependencies>
							<dependency>
								<groupId>com.google.code.maven-scm-provider-svnjava</groupId>
								<artifactId>maven-scm-provider-svnjava</artifactId>
								<version>2.1.2</version>
								<exclusions>
									<exclusion>
										<groupId>org.tmatesoft.svnkit</groupId>
										<artifactId>svnkit</artifactId>
									</exclusion>
								</exclusions>
							</dependency>
						</dependencies>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.8</version>
						<executions>
							<execution>
								<id>default-cli</id>
								<phase>package</phase>
								<configuration>
									<target>
										<property name="compile_classpath"
											refid="maven.compile.classpath" />
										<property name="project.build.sourceDirectory"
											value="${project.build.sourceDirectory}" />
										<property name="project.build.directory"
											value="${project.build.directory}" />
										<property name="project.build.outputDirectory"
											value="${project.build.outputDirectory}" />
										<property name="project.build.finalName"
											value="${project.build.finalName}" />
										<property name="project.artifactId"
											value="${project.artifactId}" />
										<property name="svn.revision" value="${svn.revision}" />
										<property name="timestamp" value="${timestamp}" />
										<ant antfile="${ant.build}.xml" />
									</target>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- release to local repositories   本地打包命令 -->
		<profile>
			<id>r2repo</id>
			<properties>
				<ant.build>build_obf</ant.build>
			</properties>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-install-plugin</artifactId>
						<version>2.5.2</version>
						<executions>
							<execution>
								<goals>
									<goal>install-file</goal>
								</goals>
								<phase>package</phase>
								<configuration>
									<groupId>${project.groupId}</groupId>
									<artifactId>${project.artifactId}</artifactId>
									<version>${project.version}</version>
									<packaging>jar</packaging>
									<pomFile>${project.basedir}/pom.xml</pomFile>
									<file>${project.build.directory}/${project.build.finalName}.jar</file>
									<javadoc>${project.build.directory}/${project.build.finalName}-javadoc.jar</javadoc>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- release to nexus repositories 打包并提交到nexus私服仓库-->
		<profile>
			<id>r2nexus</id>
			<properties>
				<ant.build>build_r2nexus</ant.build>
			</properties>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-deploy-plugin</artifactId>
						<version>2.8.2</version>
						<executions>
							<execution>
								<goals>
									<goal>deploy-file</goal>
								</goals>
								<phase>package</phase>
								<configuration>
									<repositoryId>${nexus.server.id}</repositoryId>
									<groupId>${project.groupId}</groupId>
									<artifactId>${project.artifactId}</artifactId>
									<version>${project.version}</version>
									<packaging>jar</packaging>
									<pomFile>${project.basedir}/pom.xml</pomFile>
									<file>${project.build.directory}/${project.build.finalName}.jar</file>
									<javadoc>${project.build.directory}/${project.build.finalName}-javadoc.jar</javadoc>
									<url>${nexus.release.url}</url>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
