buildscript {
	if ("local".equals(mavenRepo)) {
		repositories {
			maven {
				credentials {
					username getUsername
					password getPassword
				}
				url mavenPluginRepoUrl
			}
		}
		dependencies {
			if ("true".equals(useEcj)) {
				classpath "com.beecode:ecj-plugin:0.5.1"
			}
			classpath "com.beecode:mk-gradle-plugin:1.1.0"
		}
	}
}

apply plugin: "eclipse"
apply plugin: "idea"

configure(subprojects) { project ->
	apply from: "../common.gradle"
	if ("local".equals(mavenRepo)) {
		if ("true".equals(useEcj) && "local".equals(mavenRepo)) {
			apply plugin: 'com.beecode.enzyme.ecj-plugin'
		}
		apply plugin: 'com.beecode.mk-plugin'
	}

	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()
		}
	}

	task sourcesJar(type: Jar, dependsOn: classes) {
		// classifier = 'sources'
		// from sourceSets.main.allSource
	}

	task javadocJar(type: Jar, dependsOn: javadoc) {
		classifier = 'javadoc'
		from javadoc.destinationDir
	}

	task buildCopy(type: Copy) {
		from 'build/classes/mk/main'
	    into 'src/main/resources'
	    include '**/*.jmx'
	}
	
	task buildCopy2bin(type: Copy) {
		from 'build/classes/mk/main'
	    into 'bin'
	    include '**/*.jmx'
	}

	publishing {
		publications {
			mavenJava(MavenPublication) {
				from components.java
				// artifact sourcesJar
			}
		}
		repositories {
			maven {
				credentials {
					username publishUsername
					password publishPassword
				}
				if (version.endsWith('-SNAPSHOT')) {
					url publishSnapshotRepo
				} else {
					url publishReleaseRepo
				}
			}
		}
	}

}

task build(type: Zip) {
	subprojects.forEach {
		dependsOn it.getTasksByName("build", false), it.getTasksByName("buildCopy", false), it.getTasksByName("buildCopy2bin", false)
		from it.tasks.jar.archivePath
	}
	destinationDir = new File(buildDir, "archive")
}