<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>

	<!--<parent>-->
		<!--<groupId>org.springframework.boot</groupId>-->
		<!--<artifactId>spring-boot-starter-parent</artifactId>-->
		<!--<version>2.0.6.RELEASE</version>-->
	<!--</parent>-->
	<parent>
		<groupId>org.sonatype.oss</groupId>
		<artifactId>oss-parent</artifactId>
		<version>7</version>
	</parent>

	<groupId>com.jd.blockchain</groupId>
	<artifactId>jdchain-root</artifactId>
	<version>0.8.3.RELEASE</version>
	<packaging>pom</packaging>
	<description>jdchain</description>

	<modules>
		<module>utils</module>
		<module>base</module>
		<module>binary-proto</module>
		<module>crypto</module>
		<module>runtime</module>
		<module>ledger</module>
		<module>contract</module>
		<module>consensus</module>
		<module>storage</module>
		<module>gateway</module>
		<module>peer</module>
		<module>sdk</module>
		<module>tools</module>
		<module>test</module>
		<module>deployment</module>
	</modules>

	<properties>
		<my.utils.version>0.8.1-SNAPSHOT</my.utils.version>
		<bft-smart.version>0.0.8.RELEASE</bft-smart.version>
		<browser.version>0.6.6.RELEASE</browser.version>
		<!-- <spring.framework.version>4.3.4.RELEASE</spring.framework.version> -->
		<!-- <spring.mongo.version>1.9.3.RELEASE</spring.mongo.version> <spring.dao.version>2.0.8</spring.dao.version> 
			<spring.security.version>4.2.0.RELEASE</spring.security.version> -->
		<mongo.driver.version>3.3.0</mongo.driver.version>
		<shiro.version>1.2.2</shiro.version>
		<aspectj.version>1.8.8</aspectj.version>
		<!-- <asm.version>5.2</asm.version> -->

		<druid.version>1.0.18</druid.version>
		<commons.fileupload.version>1.2.2</commons.fileupload.version>
		<mybatis.spring.version>1.2.4</mybatis.spring.version>
		<mybatis.version>3.3.0</mybatis.version>
		<mysql.connector.version>5.1.37</mysql.connector.version>

		<servlet.version>3.1.0</servlet.version>
		<jstl.version>1.2</jstl.version>

		<log4j.version>2.10.0</log4j.version>
		<slf4j.version>1.7.25</slf4j.version>

		<junit.version>4.12</junit.version>
		<mockito.version>1.10.19</mockito.version>

		<httpclient.version>4.5.1</httpclient.version>
		<jetty.version>9.4.12.v20180830</jetty.version>
		<shiro.version>1.2.3</shiro.version>

		<disruptor.version>3.3.6</disruptor.version>
		<kryo.version>3.0.1</kryo.version>
		<jedis.version>2.9.0</jedis.version>
		<rocksdb.version>5.15.10</rocksdb.version>
		<zookeeper.version>3.4.6</zookeeper.version>
		<javaparser.version>3.5.12</javaparser.version>
		<ehcache.version>3.5.3</ehcache.version>
		<cache-api.version>1.1.0</cache-api.version>
		<commons-io.version>2.4</commons-io.version>
		<disruptor.version>3.4.2</disruptor.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>2.0.6.RELEASE</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>com.jd.blockchain</groupId>
				<artifactId>bft-smart</artifactId>
				<version>${bft-smart.version}</version>
			</dependency>

			<dependency>
				<groupId>com.jd.blockchain</groupId>
				<artifactId>browser</artifactId>
				<version>${browser.version}</version>
			</dependency>

			<!-- The test dependency -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-core</artifactId>
				<version>${mockito.version}</version>
				<scope>test</scope>
			</dependency>

			<!-- The thirdpart dependency -->
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>javax.servlet-api</artifactId>
				<version>${servlet.version}</version>
			</dependency>
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>jstl</artifactId>
				<version>${jstl.version}</version>
			</dependency>

			<dependency>
				<groupId>com.lmax</groupId>
				<artifactId>disruptor</artifactId>
				<version>${disruptor.version}</version>
			</dependency>

			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>fastjson</artifactId>
				<version>1.2.32</version>
			</dependency>

			<dependency>
				<groupId>com.github.javaparser</groupId>
				<artifactId>javaparser-core</artifactId>
				<version>${javaparser.version}</version>
			</dependency>

			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-api</artifactId>
				<version>${log4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-core</artifactId>
				<version>${log4j.version}</version>
			</dependency>

			<dependency>
				<groupId>org.aspectj</groupId>
				<artifactId>aspectjrt</artifactId>
				<version>${aspectj.version}</version>
			</dependency>
			<dependency>
				<groupId>org.aspectj</groupId>
				<artifactId>aspectjweaver</artifactId>
				<version>${aspectj.version}</version>
			</dependency>
			<dependency>
				<groupId>org.aspectj</groupId>
				<artifactId>aspectjtools</artifactId>
				<version>${aspectj.version}</version>
			</dependency>

			<!-- <dependency> <groupId>asm</groupId> <artifactId>asm</artifactId> 
				<version>${asm.version}</version> </dependency> -->

			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpclient</artifactId>
				<version>${httpclient.version}</version>
			</dependency>

			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-server</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-io</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-http</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-util</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-webapp</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-xml</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-security</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-servlet</artifactId>
				<version>${jetty.version}</version>
			</dependency>

			<dependency>
				<groupId>redis.clients</groupId>
				<artifactId>jedis</artifactId>
				<version>${jedis.version}</version>
			</dependency>

			<dependency>
				<groupId>org.rocksdb</groupId>
				<artifactId>rocksdbjni</artifactId>
				<version>${rocksdb.version}</version>
			</dependency>

			<dependency>
				<groupId>io.grpc</groupId>
				<artifactId>grpc-netty</artifactId>
				<version>1.9.0</version>
			</dependency>
			<dependency>
				<groupId>io.grpc</groupId>
				<artifactId>grpc-protobuf</artifactId>
				<version>1.9.0</version>
			</dependency>
			<dependency>
				<groupId>io.grpc</groupId>
				<artifactId>grpc-stub</artifactId>
				<version>1.9.0</version>
			</dependency>

			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcprov-jdk15on</artifactId>
				<version>1.59</version>
			</dependency>

			<dependency>
				<groupId>io.nats</groupId>
				<artifactId>jnats</artifactId>
				<version>2.2.0</version>
				<exclusions>
					<exclusion>
						<groupId>net.i2p.crypto</groupId>
						<artifactId>eddsa</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-collections4</artifactId>
				<version>4.1</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<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>
					<optimize>false</optimize>
					<debug>true</debug>
					<showDeprecation>false</showDeprecation>
					<showWarnings>false</showWarnings>
				</configuration>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<configuration>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>


				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>${maven-dependency-plugin.version}</version>
					<executions>
						<execution>
							<id>copy-dependencies</id>
							<phase>package</phase>
							<goals>
								<goal>copy-dependencies</goal>
							</goals>
							<configuration>
								<!--${project.build.directory} class的输出目录不做设置的话默认代表项目根目录的target目录； 
									也可以使用“自定义文件夹/自定义文件夹 例如：a/b”，也可以使用绝对路径如：“D:\test” -->
								<outputDirectory>${project.build.directory}/libs</outputDirectory>
								<excludeTransitive>false</excludeTransitive>
								<stripVersion>false</stripVersion>
								<includeScope>runtime</includeScope>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<configuration>
						<archive>
							<manifest>
								<addClasspath>true</addClasspath>
								<classpathPrefix>lib</classpathPrefix>
								<useUniqueVersions>false</useUniqueVersions>
								<!-- <mainClass></mainClass> -->
							</manifest>
						</archive>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>2.4.1</version>
					<executions>
						<execution>
							<id>make-assembly</id>
							<phase>package</phase>
							<goals>
								<goal>single</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-war-plugin</artifactId>
					<version>2.6</version>
					<configuration>
						<useCache>false</useCache>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>2.10.4</version>
					<executions>
						<execution>
							<id>attach-javadocs</id>
							<phase>package</phase>
							<goals>
								<goal>jar</goal>
							</goals>
							<configuration>
								<additionalparam>${javadoc.opts}</additionalparam>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<!--&lt;!&ndash; 生成sources源码包的插件 &ndash;&gt;-->
				<!--<plugin>-->
					<!--<artifactId>maven-source-plugin</artifactId>-->
					<!--<version>2.4</version>-->
					<!--<configuration>-->
						<!--<attach>true</attach>-->
					<!--</configuration>-->
					<!--<executions>-->
						<!--<execution>-->
							<!--<phase>package</phase>-->
							<!--<goals>-->
								<!--<goal>jar-no-fork</goal>-->
							<!--</goals>-->
						<!--</execution>-->
					<!--</executions>-->
				<!--</plugin>-->
			</plugins>
		</pluginManagement>

		<extensions>
			<extension>
				<groupId>kr.motd.maven</groupId>
				<artifactId>os-maven-plugin</artifactId>
				<version>1.4.1.Final</version>
			</extension>
		</extensions>
	</build>

	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<scm>
		<url>https://github.com/blockchain-jd-com/jdchain.git</url>
		<connection>https://github.com/blockchain-jd-com/jdchain.git</connection>
		<developerConnection>https://github.com/blockchain-jd-com/jdchain.git</developerConnection>
	</scm>

	<developers>
		<developer>
			<name>jdchain</name>
			<email>git-jdchain@jd.com</email>
			<url>https://github.com/blockchain-jd-com/jdchain.git</url>
		</developer>
	</developers>

	<profiles>
		<profile>
			<id>disable-javadoc-doclint</id>
			<activation>
				<jdk>[1.8,)</jdk>
			</activation>
			<properties>
				<javadoc.opts>-Xdoclint:none</javadoc.opts>
			</properties>
		</profile>
	</profiles>


</project>