apply plugin: 'java'
tasks.withType(JavaCompile){
	options.encoding = 'UTF-8'
}
//指定构建的jdk版本
sourceCompatibility=1.7
//指定生成的jar包版本
version='8.0'

def srcDir="."


//指明生成jar包的名字
jar{
	baseName='fr-designer-report'
}
//源码所在位置
sourceSets{
		main{
			java{
				srcDirs=["${srcDir}/src",
"${srcDir}/../designer/src"]
			}
		}
}

//获取什么分支名
FileTree files =fileTree(dir:'./',include:'build.*.gradle')
def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ('\\'))
buildDir=buildDir.substring(0,buildDir.lastIndexOf ('\\'))
def branchName=buildDir.substring(buildDir.lastIndexOf ('\\')+1)

//声明外部依赖
dependencies{
compile fileTree(dir:"../../../finereport-lib-stable/${branchName}",include:'**/*.jar')
compile fileTree(dir:'../../../',include:"finereport-*-stable/${branchName}/**/build/libs/*.jar")

 	testCompile 'junit:junit:4.12'
}

//指明无法编译文件所在路径
def dataContent ={def dir ->
		copySpec{
			from ("${dir}"){
				exclude '**/.setting/**','.classpath','.project','**/*.java','**/*.db','**/*.g','**/package.html'
			}
		}
}
FileTree f1=fileTree(dir:'../../../',include:"finereport-*-stable/${branchName}/build/libs/*.jar")
f1.each{File file->
	println "----------${file.path}"
}

FileTree f2=fileTree(dir:"../../../finereport-lib-stable/${branchName}",include:'**/*.jar')
f2.each{File file->
	println "----------${file.path}"
}


//将非.java文件复制到classes文件夹下 参与打包
task copyFile(type:Copy,dependsOn:compileJava){
	copy{
		with dataContent.call("${srcDir}/src") 
		with dataContent.call("${srcDir}/../designer/src") 
		into ('build/classes/main')
	}

}


//压缩项目中的js文件
task compressJS{
	ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){
		classpath {
			fileset(dir:'../../../finereport-lib4build-stable',includes:'**/*.jar')
		}
	}
	ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false", charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){
		fileset (dir:"${srcDir}/src"){
			include (name:'**/*.js')
			include (name:'**/*.css')

		}
		fileset (dir:"${srcDir}/../designer/src"){
			include (name:'**/*.js')
			include (name:'**/*.css')
		}

	}
}
jar.dependsOn compressJS