<?xml version="1.0" encoding="UTF-8"?>
<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">
	<parent>
		<groupId>com.lc.ibps.cloud</groupId>
		<artifactId>ibps-basis-root</artifactId>
		<version>4.0.1-LC.SAAS-RELEASE</version>
		<relativePath>../../pom.xml</relativePath>
	</parent>

	<modelVersion>4.0.0</modelVersion>
	<artifactId>ibps-basis-eureka</artifactId>

	<properties>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.freemarker</groupId>
  					<artifactId>freemarker</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
		</dependency>
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
        
        <dependency>
			<groupId>org.springframework.boot</groupId>
        	<artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>
        <dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-yaml</artifactId>
		</dependency>
        
        <!-- response -->
		<dependency>
			<groupId>com.lc.ibps.cloud</groupId>
			<artifactId>ibps-basic-response</artifactId>
			<exclusions>
				<exclusion>
					<groupId>*</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency> -->
		<dependency>
			<groupId>com.lc.ibps.cloud</groupId>
			<artifactId>ibps-basic-monitor</artifactId>
		</dependency>
		<dependency>
		    <groupId>com.lc.ibps.persist</groupId>
			<artifactId>ibps-persist-common</artifactId>
		</dependency>
		<dependency>
		    <groupId>com.lc.ibps.api</groupId>
			<artifactId>ibps-api-base</artifactId>
		</dependency>
		<dependency>
		    <groupId>cn.hutool</groupId>
		    <artifactId>hutool-all</artifactId>
		</dependency>
		<dependency>
		    <groupId>javax.mail</groupId>
		    <artifactId>mail</artifactId>
		</dependency>
        <dependency>
			<groupId>com.lc.ibps.cloud</groupId>
			<artifactId>ibps-basic-config</artifactId>
		</dependency>
        
        <!-- i18n -->
        <!-- 
        <dependency>
			<groupId>com.lc.ibps.cloud</groupId>
			<artifactId>ibps-basic-i18n</artifactId>
		</dependency>
		<dependency>
		    <groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
		</dependency>
		<dependency>
			<groupId>javax</groupId>
			<artifactId>javaee-api</artifactId>
		</dependency> 
		-->
		
		<!-- 
		<dependency>
		 	<groupId>org.springframework.boot</groupId>
		 	<artifactId>spring-boot-devtools</artifactId>
		 	<optional>true</optional>
		</dependency> 
		-->
		
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<!-- <plugin>
			    <groupId>org.springframework.boot</groupId>
			    <artifactId>spring-boot-maven-plugin</artifactId>
			    <version>${boot.version}</version>
			    <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
			</plugin> -->
			
			<plugin>
	            <groupId>org.apache.maven.plugins</groupId>
	            <artifactId>maven-dependency-plugin</artifactId>
	            <version>${dependency.version}</version>
	            <configuration>
					<encoding>UTF-8</encoding>
				</configuration>
	            <executions>
	                <execution>
	                    <id>copy-dependencies</id>
	                    <phase>package</phase>
	                    <goals>
	                        <goal>copy-dependencies</goal>
	                    </goals>
	                    <configuration>
	                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
	                        <includeScope>compile</includeScope>
	                        <includeScope>runtime</includeScope>
	                    </configuration>
	                </execution>
	            </executions>
	        </plugin>
			
			<plugin>
			    <artifactId>maven-antrun-plugin</artifactId>
			    <version>${antrun.version}</version>
			    <executions>
			        <execution>
			            <phase>package</phase>
			            <goals>
			                <goal>run</goal>
			            </goals>
			            <configuration>
			                <tasks>
			                	<property name="classes.dir" value="${project.build.directory}/classes-exclude"/>
								<property name="lib.dir" value="${project.build.directory}/lib-exclude"/>
								
								<copy todir="${classes.dir}" includeEmptyDirs="false">
						        	<fileset dir="${project.build.directory}/classes">
						        	</fileset>
						        </copy>
						        <copy todir="${lib.dir}">
						        	<fileset dir="${project.build.directory}/lib"/>
						        </copy>
								
								<unjar dest="${classes.dir}" overwrite="false">
				                	<patternset>
				                		<include name="**/appd"/>
				                		<include name="**/*.sh"/>
				                		<include name="**/*.bat"/>
				                		<include name="**/readMe"/>
				                		
				                		<include name="**/*.xsd"/>
				                		<include name="**/*.xml"/>
				                		<include name="**/*.yml"/>
				                		<include name="**/*.txt"/>
				                		<include name="**/*.properties"/>
				                		<include name="**/*.setting"/>
				                		<include name="**/*.conf"/>
				                		<include name="**/*.env"/>
										<include name="**/*.json"/>
										<include name="**/*.jks"/>
				                		
				                		<exclude name="**/*.map.xml"/>
				                		<exclude name="org/activiti/engine/mapping/**/*.xml"/>
								    </patternset>
								    <fileset dir="${lib.dir}">
								        <include name="lc-*.jar"/>
								        <include name="ibps-*.jar"/>
								    </fileset>
			                	</unjar>
						        
						        <!--
						        <delete includeEmptyDirs="true">
								  	<fileset dir="${lib.dir}">
								        <include name="lc-*.jar"/>
								        <include name="ibps-*.jar"/>
								  	</fileset>
								</delete>
						        -->
								
								<property name="jarname" value="eureka.jar"/>
								<property name="jarfile.exclude.basedir" value="${project.build.directory}/${project.artifactId}-exclude"/>
								<property name="jarfile.exclude.name" value="${jarfile.exclude.basedir}/${jarname}"/>
								
						        <copy todir="${jarfile.exclude.basedir}" includeEmptyDirs="false">
						        	<fileset dir="${classes.dir}">
						        		<exclude name="**/*.class" />
						        	</fileset>
						        </copy>
						        <copy todir="${jarfile.exclude.basedir}/lib">
						        	<fileset dir="${lib.dir}"/>
						        </copy>
						        <pathconvert property="exclude.lib" pathsep=" ">
									<mapper>
										<chainedmapper>
											<flattenmapper />
											<globmapper from="*" to="lib/*" />
										</chainedmapper>
									</mapper>
									<fileset dir="${jarfile.exclude.basedir}/lib">
										<include name="*.jar" />
									</fileset>
								</pathconvert>
								<jar destfile="${jarfile.exclude.name}">
									<manifest>
								      	<attribute name="Class-Path" value=". ${exclude.lib}"/>
								      	<attribute name="Main-Class" value="com.lc.ibps.EurekaApplication"/>
								    </manifest>
							        <fileset dir="${classes.dir}">
							        	<include name="**/*.class" />
							        </fileset>
								</jar>
								
								<delete includeEmptyDirs="true">
								  	<fileset dir="${classes.dir}"/>
								  	<fileset dir="${lib.dir}"/>
								  	<fileset dir="${project.build.directory}/lib"/>
								</delete>
			                </tasks>
			            </configuration>
			        </execution>
			    </executions>
			</plugin>
		</plugins>
	</build>
</project>