buildscript {
	if ("jcenter".equals(mavenRepo)) {
		repositories {
			jcenter()
		}
	} else if ("mavenCentral".equals(mavenRepo)) {
		repositories {
			mavenCentral()
		}
	} else if ("ali".equals(mavenRepo)) {
		repositories {
			maven {
				url aliRepoUrl
			}
		}
	} else if ("local".equals(mavenRepo)) {
		repositories {
			maven {
				credentials {
					username getUsername
					password getPassword
				}
				url mavenRepoUrl
			}
			maven {
				url aliRepoUrl
			}
		}
		configurations.all {
			resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
		}
		dependencies {
			classpath "com.beecode:mk-gradle-plugin:1.1.0"
		}
	} else {
		// default
		repositories {
			jcenter()
		}
	}
	dependencies {
		classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.2.RELEASE")

	}
}
// plugins {
//   id "com.gorylenko.gradle-git-properties" version "1.5.1"
// }

// gitProperties {
//     dateFormat = "yyyy-MM-dd'T'HH:mmZ"
//     dateFormatTimeZone = "GMT+8"
// }
ext {
	inzVersion               = "1.0.+"
	ueditorVersion			 = "1.0.+"
}

apply from: "../common.gradle"
apply plugin: 'org.springframework.boot'
apply plugin: 'war'
apply plugin: 'eclipse'

war {
	baseName = 'inz'
}

repositories {
	if ("jcenter".equals(mavenRepo)) {
		jcenter()
	} else if ("mavenCentral".equals(mavenRepo)) {
		mavenCentral()
	} else if ("ali".equals(mavenRepo)) {
		maven {
			url aliRepoUrl
		}
	} else if ("local".equals(mavenRepo)) {
		maven {
				credentials {
					username getUsername
					password getPassword
				}
				url mavenRepoUrl
		}
		maven {
				url aliRepoUrl
			}
	} else {
		// default
		jcenter()
	}
}

dependencies {
	compile lib.spring_boot_starter_web
	
	compile lib.thymeleaf_extras
	compile lib.spring_security_core
	compile lib.spring_security_config
	compile lib.spring_security_web
	compile lib.hibernate_core
	compile lib.hikari
	compile lib.mysql_connector

	compile lib.spring_boot_starter_data_redis
	compile "org.springframework.boot:spring-boot-starter-json:${springBootVersion}"
	compile "org.springframework.boot:spring-boot-starter-actuator:${springBootVersion}"
	compile lib.spring_boot_starter_jdbc
	compile lib.spring_boot_starter_security
	compile lib.spring_boot_starter_web_service
	compile lib.spring_session_core
	compile lib.spring_session_redis
	compile lib.liquibase
	compile lib.cxf_rt_frontend_jaxws
	compile lib.cxf_rt_transports_http
	compile lib.amino_boot
	compile lib.amino_boot_web
	compile lib.amino_shell
	compile lib.amino_tenant
	compile lib.amino_tenant_liquibase
	
	compile lib.bap2_attachment
	compile lib.bap2_core
	compile lib.bap2_sysconfig
	compile lib.bap2_system
	compile lib.hibernate_common_annotations
	compile lib.net_byte_buddy
	compile lib.bcp_authc
	compile lib.bcp_advanced_query
	compile lib.bcp_import
	compile lib.json
	compile "com.beecode:inz.authmgr:${inzVersion}"
	compile "com.beecode:inz.common:${inzVersion}"
	compile "com.beecode:inz.query:${inzVersion}"
	compile "com.beecode:inz.basis:${inzVersion}"
	compile "com.beecode:inz.init.data:${inzVersion}"
	compile "com.beecode:inz.authentication:${inzVersion}"
	compile "com.beecode:inz.workflow:${inzVersion}"
	compile "com.beecode:inz.message:${inzVersion}"
	compile "com.beecode:inz.enterprisesetting:${inzVersion}"
	compile "com.beecode:xyst.dinas.oa:${inzVersion}"
	compile "com.beecode:xyst.dinas.biz:${inzVersion}"
	compile "com.beecode:xyst.dinas.project:${inzVersion}"
	compile "com.beecode:xyst.dinas.production:${inzVersion}"
	compile "com.beecode:xyst.dinas.contract:${inzVersion}"
	compile "com.beecode:xyst.dinas.camera:${inzVersion}"
	compile "com.beecode:xyst.dinas.price:${inzVersion}"
	compile "com.beecode:xyst.dinas.transport:${inzVersion}"
	compile "com.beecode:xyst.dinas.safe:${inzVersion}"
	compile "com.beecode:xyst.dinas.sales:${inzVersion}"
	compile "com.beecode:xyst.dinas.statistics:${inzVersion}"
	compile "com.beecode:xyst.dinas.finance:${inzVersion}"
	providedRuntime lib.spring_boot_starter_tomcat
}

def projName = name
def projVersion = version
def warPath = war.archivePath.absolutePath
task generateResultInfo() {
	if (outFile != null && !outFile.isEmpty()) {
		doLast {
			def builder = new groovy.xml.StreamingMarkupBuilder()
			builder.encoding = 'UTF-8'
			def resultInfo = {
				mkp.xmlDeclaration()
				it.build {
					it.project(name: projName, version: projVersion) {
						it.artifact(path: warPath)
					}
				}
			}
			def writer = new FileWriter(outFile)
			try {
				writer << builder.bind(resultInfo)
			} finally {
				writer.close()
			}
		}
	}
}
build.dependsOn 'generateResultInfo'