<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
	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>
	<parent>
		<groupId>com.github.rebue.common-pom</groupId>
		<artifactId>common-pom</artifactId>
		<version>1.1.0</version>
	</parent>

	<artifactId>common-dependencies</artifactId>
	<packaging>pom</packaging>
	<description>依赖常用jar包的父项目</description>

	<properties>
		<junit.version>4.12</junit.version>
		<junit-jupiter.version>5.5.1</junit-jupiter.version>
		<slf4j.version>1.7.26</slf4j.version>
		<logback.version>1.2.3</logback.version>
		<!-- log4j2的版本暂时不能用2.7之上的版本,否则spring boot项目在log4j2.xml不在默认目录下， -->
		<!-- 指定到另外的目录下，如config下，启动时会出现异常，但似乎不影响程序的正常运行 -->
		<!-- java.lang.NoSuchMethodError: -->
		<!-- org.apache.logging.log4j.core.pattern.ThrowablePatternConverter.<init> -->
		<!-- (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V -->
		<log4j2.version>2.12.0</log4j2.version>
		<!-- <log4j2.version>2.7</log4j2.version> -->
		<jcl-over-slf4j.version>1.7.26</jcl-over-slf4j.version>
		<javax-mail.version>1.6.2</javax-mail.version>
		<commons-lang3.version>3.9</commons-lang3.version>
		<guava.version>28.0-jre</guava.version>
		<javassist.version>3.25.0-GA</javassist.version>
		<commons-configuration.version>2.5</commons-configuration.version>
		<servlet.version>3.1.0</servlet.version>
		<jackson.version>2.9.9</jackson.version>
		<!-- <dom4j.version>1.6.1</dom4j.version> -->
		<dom4j.version>2.1.1</dom4j.version>
		<xstream.version>1.4.11.1</xstream.version>
		<!-- <spring.version>4.3.12.RELEASE</spring.version> -->
		<spring.version>5.1.8.RELEASE</spring.version>
		<spring-data-jpa.version>2.1.10.RELEASE</spring-data-jpa.version>
		<spring-data-elasticsearch.version>3.1.10.RELEASE</spring-data-elasticsearch.version>
		<springloaded.version>1.2.8.RELEASE</springloaded.version>
		<mybatis-spring.version>2.0.2</mybatis-spring.version>
		<!-- <mybatis-spring.version>1.3.1</mybatis-spring.version> -->
		<hibernate.version>5.4.3.Final</hibernate.version>
		<hibernate-jpa.version>1.0.2.Final</hibernate-jpa.version>
		<roaster.version>2.21.0.Final</roaster.version>
		<beetl.version>3.0.10.RELEASE</beetl.version>
		<bouncycastle.version>1.62</bouncycastle.version>
		<protostuff.version>1.6.0</protostuff.version>
		<javaparser.version>3.14.9</javaparser.version>
		<lombok.version>1.18.8</lombok.version>
		<mysql-connector-java.version>5.1.47</mysql-connector-java.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.github.rebue.common-pom</groupId>
				<artifactId>common-import</artifactId>
				<version>1.1.0</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
			</dependency>
			<dependency>
				<groupId>org.junit</groupId>
				<artifactId>junit-bom</artifactId>
				<version>${junit-jupiter.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>ch.qos.logback</groupId>
				<artifactId>logback-classic</artifactId>
				<version>${logback.version}</version>
			</dependency>
			<!-- 用slf4j实现jcl -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jcl-over-slf4j</artifactId>
				<version>${jcl-over-slf4j.version}</version>
			</dependency>

			<!-- ↓↓↓↓↓↓↓↓↓↓ 日志框架log4j2 ↓↓↓↓↓↓↓↓↓↓ -->
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-core</artifactId>
				<version>${log4j2.version}</version>
			</dependency>
			<!-- 桥接：告诉Slf4j使用Log4j2 -->
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-slf4j-impl</artifactId>
				<version>${log4j2.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-api</artifactId>
				<version>${log4j2.version}</version>
			</dependency>
			<!-- 桥接：告诉commons logging使用Log4j2 -->
			<!-- 目前主要有spring cloud还在使用jcl -->
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-jcl</artifactId>
				<version>${log4j2.version}</version>
			</dependency>
			<!-- ↑↑↑↑↑↑↑↑↑↑ 日志框架log4j2 ↑↑↑↑↑↑↑↑↑↑ -->

			<dependency>
				<groupId>com.sun.mail</groupId>
				<artifactId>javax.mail</artifactId>
				<version>${javax-mail.version}</version>
			</dependency>
			<!-- 使用字符串的一些帮助库 -->
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-lang3</artifactId>
				<version>${commons-lang3.version}</version>
			</dependency>
			<dependency>
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
				<version>${guava.version}</version>
			</dependency>
			<!-- 生成动态代理的类库 -->
			<dependency>
				<groupId>org.javassist</groupId>
				<artifactId>javassist</artifactId>
				<version>${javassist.version}</version>
			</dependency>
			<!-- 读取properties/xml等类型的配置文件 -->
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-configuration2</artifactId>
				<version>${commons-configuration.version}</version>
				<exclusions>
					<exclusion>
						<groupId>commons-logging</groupId>
						<artifactId>commons-logging</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<!-- BaseEnum用@JsonValue注解来自定义序列化 -->
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-annotations</artifactId>
				<version>${jackson.version}</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>${jackson.version}</version>
			</dependency>


			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>javax.servlet-api</artifactId>
				<version>${servlet.version}</version>
				<scope>provided</scope>
			</dependency>

			<!-- 解析XML格式 -->
			<!-- <dependency> -->
			<!-- <groupId>dom4j</groupId> -->
			<!-- <artifactId>dom4j</artifactId> -->
			<!-- <version>${dom4j.version}</version> -->
			<!-- </dependency> -->
			<dependency>
				<groupId>org.dom4j</groupId>
				<artifactId>dom4j</artifactId>
				<version>${dom4j.version}</version>
			</dependency>
			<dependency>
				<groupId>com.thoughtworks.xstream</groupId>
				<artifactId>xstream</artifactId>
				<version>${xstream.version}</version>
			</dependency>

			<!-- ↓↓↓↓↓↓↓↓↓↓ spring ↓↓↓↓↓↓↓↓↓↓ -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-test</artifactId>
				<version>${spring.version}</version>
				<scope>test</scope>
				<exclusions>
					<exclusion>
						<artifactId>commons-logging</artifactId>
						<groupId>commons-logging</groupId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-core</artifactId>
				<version>${spring.version}</version>
				<exclusions>
					<exclusion>
						<groupId>commons-logging</groupId>
						<artifactId>commons-logging</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${spring.version}</version>
				<exclusions>
					<exclusion>
						<artifactId>commons-logging</artifactId>
						<groupId>commons-logging</groupId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-web</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-webmvc</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<!-- spring事务 -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-tx</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-jdbc</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework.data</groupId>
				<artifactId>spring-data-commons</artifactId>
				<version>${spring-data-jpa.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework.data</groupId>
				<artifactId>spring-data-jpa</artifactId>
				<version>${spring-data-jpa.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework.data</groupId>
				<artifactId>spring-data-elasticsearch</artifactId>
				<version>${spring-data-elasticsearch.version}</version>
			</dependency>
			<!-- 在web服务器启动后实现spring mvc框架配置文件的热加载，貌似在jetty中不起作用 -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>springloaded</artifactId>
				<version>${springloaded.version}</version>
				<scope>runtime</scope>
			</dependency>
			<!-- ↑↑↑↑↑↑↑↑↑↑ spring ↑↑↑↑↑↑↑↑↑↑ -->

			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>jstl</artifactId>
				<version>1.2</version>
			</dependency>

			<!-- ↓↓↓↓↓↓↓↓↓↓ mybatis ↓↓↓↓↓↓↓↓↓↓ -->
			<!-- 支持用Spring的配置文件来配置MyBatis -->
			<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis-spring</artifactId>
				<version>${mybatis-spring.version}</version>
			</dependency>
			<!-- ↑↑↑↑↑↑↑↑↑↑ mybatis ↑↑↑↑↑↑↑↑↑↑ -->

			<!-- ↓↓↓↓↓↓↓↓↓↓ hibernate ↓↓↓↓↓↓↓↓↓↓ -->
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-core</artifactId>
				<version>${hibernate.version}</version>
			</dependency>
			<dependency>
				<groupId>org.hibernate.javax.persistence</groupId>
				<artifactId>hibernate-jpa-2.1-api</artifactId>
				<version>${hibernate-jpa.version}</version>
			</dependency>
			<!-- ↑↑↑↑↑↑↑↑↑↑ hibernate ↑↑↑↑↑↑↑↑↑↑ -->


			<!-- ↓↓↓↓↓↓↓↓↓↓ 解析java源文件的库 ↓↓↓↓↓↓↓↓↓↓ -->
			<dependency>
				<groupId>org.jboss.forge.roaster</groupId>
				<artifactId>roaster-api</artifactId>
				<version>${roaster.version}</version>
			</dependency>
			<dependency>
				<groupId>org.jboss.forge.roaster</groupId>
				<artifactId>roaster-jdt</artifactId>
				<version>${roaster.version}</version>
				<scope>runtime</scope>
			</dependency>
			<!-- ↑↑↑↑↑↑↑↑↑↑ 解析java源文件的库 ↑↑↑↑↑↑↑↑↑↑ -->

			<dependency>
				<groupId>com.ibeetl</groupId>
				<artifactId>beetl</artifactId>
				<version>${beetl.version}</version>
			</dependency>

			<!-- 加密算法库 -->
			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcprov-jdk15on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>
			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcpkix-jdk15on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>

			<!-- 序列化库 -->
			<dependency>
				<groupId>io.protostuff</groupId>
				<artifactId>protostuff-core</artifactId>
				<version>${protostuff.version}</version>
			</dependency>
			<dependency>
				<groupId>io.protostuff</groupId>
				<artifactId>protostuff-runtime</artifactId>
				<version>${protostuff.version}</version>
			</dependency>

			<!-- 解析java源文件的库 -->
			<dependency>
				<groupId>com.github.javaparser</groupId>
				<artifactId>javaparser-symbol-solver-core</artifactId>
				<version>${javaparser.version}</version>
			</dependency>
			<dependency>
				<groupId>com.github.javaparser</groupId>
				<artifactId>javaparser-core</artifactId>
				<version>${javaparser.version}</version>
			</dependency>

			<dependency>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok</artifactId>
				<version>${lombok.version}</version>
				<!-- <scope>provided</scope> -->
			</dependency>

			<dependency>
				<groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
				<version>${mysql-connector-java.version}</version>
			</dependency>

		</dependencies>
	</dependencyManagement>

</project>