<!--
  ~ Copyright (c) 2024 Liang Wenjian
  ~ magicall is licensed under Mulan PSL v2.
  ~ You can use this software according to the terms and conditions of the Mulan PSL v2.
  ~ You may obtain a copy of Mulan PSL v2 at:
  ~          http://license.coscl.org.cn/MulanPSL2
  ~ THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
  ~ EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
  ~ MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
  ~ See the Mulan PSL v2 for more details.
  -->

<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>me.magicall</groupId>
	<artifactId>all</artifactId>
	<version>2.15.0</version>
	<packaging>pom</packaging>

	<name>all</name>

	<description>一些java工具</description>
	<licenses>
		<license>
			<name>木兰宽松许可证, 第2版</name>
			<url>https://license.coscl.org.cn/MulanPSL2</url>
		</license>
	</licenses>

	<url>https://gitee.com/magicall/magicall</url>
	<scm>
		<url>https://gitee.com/magicall/magicall</url>
		<developerConnection>scm:git:git@gitee.com:magicall/magicall.git</developerConnection>
		<tag>all-2.15.0</tag>
	</scm>

	<developers>
		<developer>
			<name>梁文剑（Liang Wenjian）</name>
			<email>lwj621@163.com</email>
		</developer>
	</developers>

	<properties>
		<!-- for project -->
		<encoding>UTF-8</encoding>
		<java.version>17</java.version>
		<!-- for util -->
		<javax.annotation-api.version>1.3.2</javax.annotation-api.version>
		<guava.version>33.0.0-jre</guava.version>
		<commons-lang3.version>3.12.0</commons-lang3.version>
		<hutool.version>5.8.25</hutool.version>
		<httpclient.version>4.5.2</httpclient.version>
		<dom4j.version>2.0.0</dom4j.version>
		<jackson.version>2.14.2</jackson.version>
		<poi.version>4.1.1</poi.version>
		<error_prone_annotations.version>2.0.15</error_prone_annotations.version>
		<!-- for biz -->
		<servlet-api.version>4.0.0-b05</servlet-api.version>
		<spring.version>5.2.21.RELEASE</spring.version>
		<magicall.version>${project.version}</magicall.version>
		<persistence-api.version>3.2.0-M2</persistence-api.version>
		<!-- for test -->
		<junit.version>5.9.1</junit.version>
		<spock.version>2.2-M1-groovy-4.0</spock.version>

		<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
	</properties>

	<modules>
		<module>support</module>
		<module>net</module>
		<module>web</module>
		<module>xml</module>
		<module>db</module>
		<module>db-spring</module>
		<module>game</module>
		<module>game-sha</module>
		<module>outsea</module>
		<module>web-springmvc</module>
		<module>html</module>
		<module>support-biz</module>
		<module>support-spring</module>
		<module>support-office</module>
		<module>biz-common</module>
		<module>ai</module>
	</modules>

	<dependencies>
		<!-- for util -->
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>${guava.version}</version>
		</dependency>
		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>javax.annotation-api</artifactId>
			<version>${javax.annotation-api.version}</version>
			<optional>true</optional><!-- needed only for annotations -->
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>${commons-lang3.version}</version>
		</dependency>
		<dependency>
			<groupId>cn.hutool</groupId>
			<artifactId>hutool-all</artifactId>
			<version>${hutool.version}</version>
		</dependency>

		<!-- ============================== for test ================================ -->
		<dependency>
			<groupId>org.spockframework</groupId>
			<artifactId>spock-core</artifactId>
			<version>${spock.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.bytebuddy</groupId>
			<artifactId>byte-buddy</artifactId>
			<version>1.14.16</version>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<!-- ============================= for util ============================== -->
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-core</artifactId>
				<version>${jackson.version}</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>${jackson.version}</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.datatype</groupId>
				<artifactId>jackson-datatype-jsr310</artifactId>
				<version>${jackson.version}</version>
			</dependency>
			<dependency>
				<groupId>com.google.errorprone</groupId>
				<artifactId>error_prone_annotations</artifactId>
				<version>${error_prone_annotations.version}</version>
				<optional>true</optional><!-- needed only for annotations -->
			</dependency>

			<!-- ============================== for biz ================================= -->
			<dependency>
				<groupId>jakarta.persistence</groupId>
				<artifactId>jakarta.persistence-api</artifactId>
				<version>${persistence-api.version}</version>
			</dependency>
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>javax.servlet-api</artifactId>
				<version>${servlet-api.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpclient</artifactId>
				<version>${httpclient.version}</version>
			</dependency>

			<dependency>
				<groupId>org.dom4j</groupId>
				<artifactId>dom4j</artifactId>
				<version>${dom4j.version}</version>
			</dependency>

			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-core</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-webmvc</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-jdbc</artifactId>
				<version>${spring.version}</version>
			</dependency>

			<dependency>
				<groupId>me.magicall</groupId>
				<artifactId>support</artifactId>
				<version>${project.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.poi</groupId>
				<artifactId>poi</artifactId>
				<version>${poi.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.poi</groupId>
				<artifactId>poi-ooxml</artifactId>
				<version>${poi.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${maven-compiler-plugin.version}</version>
				<configuration>
					<encoding>${encoding}</encoding>
					<release>${java.version}</release>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>3.3.1</version>
				<configuration>
					<encoding>${encoding}</encoding>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.0.0-M4</version>
			</plugin>
			<!-- 测试`Spock -->
			<plugin>
				<groupId>org.codehaus.gmavenplus</groupId>
				<artifactId>gmavenplus-plugin</artifactId>
				<version>3.0.0</version>
				<executions>
					<execution>
						<goals>
							<goal>addSources</goal>
							<goal>addTestSources</goal>
							<goal>generateStubs</goal>
							<goal>compile</goal>
							<goal>generateTestStubs</goal>
							<goal>compileTests</goal>
							<goal>removeStubs</goal>
							<goal>removeTestStubs</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.5.0</version>
				<configuration>
					<encoding>${encoding}</encoding>
					<release>${java.version}</release>
					<verbose>true</verbose>
					<debug>true</debug>
					<failOnError>false</failOnError>
				</configuration>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.0.1</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>versions-maven-plugin</artifactId>
				<version>2.10.0</version>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<configuration>
					<autoVersionSubmodules>true</autoVersionSubmodules>
					<preparationGoals>clean verify</preparationGoals>
					<projectVersionPolicyId>SemVerVersionPolicy</projectVersionPolicyId>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<version>3.1.0</version>
				<executions>
					<execution>
						<id>sign-artifacts</id>
						<phase>verify</phase>
						<goals>
							<goal>sign</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.sonatype.central</groupId>
				<artifactId>central-publishing-maven-plugin</artifactId>
				<version>0.6.0</version>
				<extensions>true</extensions>
				<configuration>
					<publishingServerId>central.sonatype.com</publishingServerId>
				</configuration>
			</plugin>
			<!--<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>1.6.13</version>
				<extensions>true</extensions>
				<configuration>
					<serverId>maven-central</serverId>
					<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
					<autoReleaseAfterClose>true</autoReleaseAfterClose>
				</configuration>
			</plugin>-->
		</plugins>
	</build>

	<distributionManagement>
		<repository>
			<id>maven-central</id>
			<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
		<snapshotRepository>
			<id>maven-central</id>
			<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
	</distributionManagement>
</project>
