apply plugin: 'java' tasks.withType(JavaCompile){ options.encoding = 'UTF-8' } //指定构建的jdk版本 sourceCompatibility=1.5 def jarname="fr-third-9.0.jar" def classesDir='build/classes/main' def ftpreport='E:/ftp/share/report/' //解压lib下的jar到classes文件夹 jar{ baseName="fr-third-9.0" } def srcDir="." //设置源码路径 sourceSets{ main{ java{ srcDirs=["${srcDir}/fine-druid/src", "${srcDir}/fine-poi/src", "${srcDir}/fine-quartz/src"] } } } repositories{ mavenCentral() } //获取什么分支名 FileTree files =fileTree(dir:'./',include:'build.*.gradle') def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ('\\')) def branchName=buildDir.substring(buildDir.lastIndexOf ('\\')+1) //指定依赖 dependencies{ compile fileTree(dir:"${srcDir}/fine-druid/lib",include:'ojdbc7-12.1.0.jar') compile fileTree(dir:"${srcDir}/fine-druid/lib",include:'**/*.jar') compile fileTree(dir:"${srcDir}/fine-poi/lib",include:'**/*.jar') compile fileTree(dir:"${srcDir}/fine-quartz/lib",include:'**/*.jar') compile fileTree(dir:"../../finereport-lib-base/${branchName}",include:'**/*.jar') compile fileTree(dir:"../../finereport-lib-other/${branchName}",include:'**/*.jar') testCompile 'junit:junit:4.12' } task unJar{ ant{ delete(dir:"build") mkdir(dir:"build/classes/main") println "------------------------------------------------unjar" unjar(dest:"build/classes/main"){ fileset(dir:"../../finereport-lib-base/${branchName}"){ include(name:'3rd.jar') } fileset(dir:"../../finereport-lib-other/${branchName}"){ include(name:"batik-all-1.9.jar") include(name:'json.jar') } fileset(dir:"${srcDir}/fine-poi/lib"){ include(name:'**/*.jar') } } } } //指明无法编译文件所在路径 def dataContent ={def dir -> copySpec{ from ("${dir}"){ exclude '**/.setting/**','.classpath','.project','**/*.java','**/*.db','**/*.g','**/package.html' } } } task copyFiles(type:Copy,dependsOn:'unJar'){ copy{ println "------------------------------------------------copyfiles" with dataContent.call("${srcDir}/fine-druid/src") with dataContent.call("${srcDir}/fine-poi/src") with dataContent.call("${srcDir}/fine-quartz/src") into "${classesDir}" } } task deleteSrc(dependsOn:'build') { ant { delete(dir:"${srcDir}/fine-druid") delete(dir:"${srcDir}/fine-poi") delete(dir:"${srcDir}/fine-quartz") } }