<?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>2.7.8</version>
	</parent>
	<artifactId>mbap-pp</artifactId>
	<name>mbap-pp</name>
	<version>v1.V${timestamp}</version>
	<description>组织架构服务</description>
	<url>http://maven.apache.org</url>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<nexus.server.id>nexus-release</nexus.server.id>
		<nexus.server.ip>192.168.100.27:3691</nexus.server.ip>
		<nexus.release.url>http://${nexus.server.ip}/nexus/content/repositories/mbap</nexus.release.url>
		<timestamp>${maven.build.timestamp}</timestamp>
		<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
		<java.version>17</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>mbap</groupId>
			<artifactId>mbap-upload</artifactId>
			<version>v1.V20231127083513</version>
		</dependency>
		<dependency>
			<groupId>mbap</groupId>
			<artifactId>mbap-resource</artifactId>
			<version>v1.V20231129070940</version>
		</dependency>
        <dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</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.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
		<!-- （健康监控）配置和使用:可以对应用系统进行配置查看、相关功能统计等 -->
		<!--必备: 注册中心客户端 -->
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
		</dependency>
		<!-- web控制支持 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
        <!-- dubbo 相关的jar 开始 ↓ -->
        <dependency>
			<groupId>org.apache.dubbo</groupId>
			<artifactId>dubbo-spring-boot-starter</artifactId>
			<version>3.1.6</version>
		</dependency>
		<dependency>
			<groupId>org.apache.dubbo</groupId>
			<artifactId>dubbo-configcenter-nacos</artifactId>
			<version>3.1.6</version>
		</dependency>

		<dependency>
			<groupId>org.apache.dubbo</groupId>
			<artifactId>dubbo-registry-nacos</artifactId>
			<version>3.1.6</version>
		</dependency>
		<dependency>
		   <groupId>org.springframework.cloud</groupId>
		   <artifactId>spring-cloud-starter-bootstrap</artifactId>
		   <version>3.1.5</version>
		</dependency>
		<dependency>
		    <groupId>mbap</groupId>
		    <artifactId>mbap-encrypt</artifactId>
		    <version>1.0.14.4</version>
		</dependency>
	    <!-- dubbo 相关的jar 结束 ↑ -->
	</dependencies>


	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<finalName>mbap-pp</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>17</source>
					<target>17</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- resouces拷贝文件插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.6</version>
				<!-- 插件执行的时候申明所有的phase-->
				<executions>
					<execution>
						<id>copy-allatori-config</id>
						<phase>package</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<!-- 拷贝文件的目录，我们最终打包存放的位置是target目录 -->
							<outputDirectory>${basedir}/target</outputDirectory>
							<resources>
								<resource>
									<!-- 这个目录放recsource，是因为resource打包时本身会被copy到target中 -->
									<directory>src/main/resources</directory>
									<includes>
										<!-- Allatori配置文件的文件名 -->
										<include>allatori.xml</include>
									</includes>
									<filtering>true</filtering>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- 执行java程序，这里执行的是混淆的jar包程序，对代码进行混淆 -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>exec-maven-plugin</artifactId>
				<version>1.2.1</version>
				<executions>
					<execution>
						<id>run-allatori</id>
						<phase>package</phase>
						<goals>
							<goal>exec</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<includePluginDependencies>true</includePluginDependencies>
					<executable>java</executable>
					<arguments>
						<argument>-Xms128m</argument>
						<argument>-Xmx512m</argument>
						<argument>-jar</argument>
						<!-- 指定应用的Allatori的jar包的位置，我放在了当前项目的lib文件下-->
						<argument>lib/allatori.jar</argument>
						<!-- 制定代码混淆时的配置文件，我放在了当前项目根路径下-->
						<argument>allatori.xml</argument>
					</arguments>
				</configuration>
			</plugin>

			<!-- 本地安装-->
			<!--			<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}-obf.jar</file>-->
			<!--							<javadoc>${project.build.directory}/${project.build.finalName}-obf.jar</javadoc>-->
			<!--						</configuration>-->
			<!--					</execution>-->
			<!--				</executions>-->
			<!--			</plugin>-->

			<!-- 公司仓库安装-->
            			<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}-obf.jar</file>
            							<javadoc>${project.build.directory}/${project.build.finalName}-obf.jar</javadoc>
            							<url>${nexus.release.url}</url>
            						</configuration>
            					</execution>
            				</executions>
            			</plugin>

		</plugins>
	</build>
</project>
