帆软帮助文档代码合集。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
3.8 KiB

7 years ago
apply plugin: 'java'
def basedir='.'
def projectsDir='../..'
//获取什么分支名
FileTree files =fileTree(dir:"./",include:"build.gradle")
def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ("\\"))
repositories{
mavenCentral()
}
configurations{
ftpAntTask
}
//添加ftp依赖
dependencies {
ftpAntTask("org.apache.ant:ant-commons-net:1.8.4") {
module("commons-net:commons-net:1.4.1") {
dependencies "oro:oro:2.0.8:jar"
}
}
}
//脚本中的依赖
buildscript{
repositories { mavenCentral() }
dependencies {
classpath fileTree(dir:"../../lib",include:"*/*.jar")
}
}
ant{
taskdef(name: 'ftp',
classname: 'org.apache.tools.ant.taskdefs.optional.net.FTP',
classpath: configurations.ftpAntTask.asPath)
}
task prepare<<{
ant{
mkdir(dir:'plugins')
mkdir(dir:'libs')
delete(file:'libs/*.jar')
delete(includeemptydirs:"true"){
fileset(dir:"${basedir}/plugins",includes:"**/*")
}
echo(message:'dwnload latest jars')
ftp(server:'192.168.5.86',userid:'fr',password:'ilovejava',remotedir:'report/stable',action:'get'){
fileset(dir:'./libs/',includes:'*.jar')
}
}
}
FileTree buildFile=fileTree(dir:"./",include:"build.xml")
println "--------------------------${buildFile}"
//构建每个plugin
task buildAllprj(dependsOn:prepare)<<{
ant{
for(file in buildFile){
def pluginHome=file.path.substring(0,file.path.lastIndexOf ("\\"))
def pluginName=pluginHome.substring(pluginHome.lastIndexOf ("\\")+1)
println "pluginHome+++++++++++++++++++++++++++++++${pluginHome}"
println "pluginName+++++++++++++++++++++++++++++++${pluginName}"
echo(message:"-----------------------------开始构建${pluginName}----------------------------")
try{
sequential(){
echo(message:pluginHome+"/lib")
ant.mkdir(dir:pluginHome+"/lib")
ant.mkdir(dir:pluginHome+"/src")
echo(message:"build file:@{file}")
ant(antfile:"${file}",inheritall:"false"){
property(name:"jdk.home",value:"D:/FineReport/develop/java/jdk1.7")
property(name:"jdk1.8.home",value:"D:/FineReport/develop/java/jdk1.8")
property(name:"jdk1.7.home",value:"D:/FineReport/develop/java/jdk1.7")
property(name:"jdk1.6.home",value:"D:/FineReport/develop/java/jdk1.6u35")
property(name:"jdk1.5.home",value:"D:/FineReport/develop/java/jdk1.5")
property(name:"publicLibs",value:"./libs")
property(name:"destLoc",value:"../plugins")
}
}
}
catch(Exception e){
//捕获异常报错
print(e)
}
echo(message:"-----------------------------${pluginName}构建结束----------------------------")
}
delete(dir:'libs')
}
}
ant{
fileset(id:'ftp.upload.fileset',dir:'../plugins'){
include(name:'**/*.zip')
}
}
//上传到ftp
task ftp_upload(dependsOn:buildAllprj)<<{
FileTree plugins=fileTree(dir:'../plugins',include:'*/**')
ant{
echo(message:"ready for upload plugins")
echo(message:"ftp target is 192.168.5.86")
mkdir(dir:'E:/ftp/share/plugins/stable')
plugins.each{File file->
def zipDir=file.path.substring(0,file.path.lastIndexOf ("\\"))
def pluginName=zipDir.substring(zipDir.lastIndexOf ("\\")+1)
ant.delete(includeEmptyDirs:'true',dir:"E:/ftp/share/plugins/stable/${pluginName}")
}
buildFile.each{File file->
def pluginHome=file.path.substring(0,file.path.lastIndexOf ("\\"))
FileTree pluginFile=fileTree(dir:"${pluginHome}",include:"*/fr-plugin-*.jar")
pluginFile.each{File jarFile->
ant.echo(message:"${jarFile.path}")
def jarHome=jarFile.path.substring(0,jarFile.path.lastIndexOf ("\\"))
ant.echo(message:"start delete ${jarHome} ")
ant.delete(dir:"${jarHome}")
}
ant.delete(){
fileset(dir:"${pluginHome}"){
include(name:"fr-plugin-*.jar")
}
}
}
copy(todir:'E:/ftp/share/plugins/stable'){
fileset(refid:'ftp.upload.fileset')
}
}
}