/* * This file was generated by the Gradle 'init' task. */ plugins { id 'java' id 'maven-publish' } ext{ // 项目中依赖的jar的路径 // 如果依赖的jar需要打包到zip中,放置在/lib目录下 libPath = "$projectDir/webroot/WEB-INF/lib" pluginPre = "fr-plugin" pluginName = "extendedCharts" pluginVersion = getVersion() } /*读取plugin.xml中的version*/ def getVersion(){ def xmlFile = "./plugin.xml" def plugin = new XmlParser().parse(xmlFile) return plugin.version[0].text() } repositories { mavenLocal() maven { url = uri('http://mvn.finedevelop.com/repository/maven-public/') } } dependencies { //使用本地jar implementation fileTree(dir: 'lib', include: ['**/*.jar']) implementation fileTree(dir: libPath, include: ['**/*.jar']) } group = 'com.fr.plugin' version = '10.0' sourceCompatibility = '8' publishing { publications { maven(MavenPublication) { from(components.java) } } } ant.importBuild("ant_build.xml") //定义ant变量 ant.projectDir = projectDir ant.references["compile.classpath"] = ant.path { fileset(dir: libPath, includes: '**/*.jar') fileset(dir: ".",includes:"**/*.jar" ) } //clean -> classes -> copyFiles -> compile_javas(ant加密) -> preJar -> makeJar->copyFile->zip classes.dependsOn('clean') task copyFiles(type: Copy,dependsOn: 'classes'){ from "$buildDir/classes/java/main" from "$buildDir/resources/main" into "$projectDir/classes" } task preJar(type:Copy,dependsOn: 'compile_javas'){ from "$projectDir/classes" into "$buildDir/classes/java/main" include "**/*.class" doLast(){ delete file("$projectDir/classes") } } jar.dependsOn("preJar") task makeJar(type: Jar,dependsOn: preJar){ from fileTree(dir:"$buildDir/classes/java/main") baseName pluginPre appendix pluginName version pluginVersion destinationDir = file("$buildDir/libs") } task copyFile(type: Copy,dependsOn: ["makeJar"]){ from "$buildDir/libs" from("$projectDir/lib") { include "*.jar" } from "$projectDir/plugin.xml" into file("$buildDir/temp/fr-plugin-"+"$pluginName"+"-$pluginVersion") } task zip(type:Zip,dependsOn:["copyFile"]){ from "$buildDir/temp" destinationDir file("$buildDir/install") //生成的文件名: baseName-appendix-0.0.1.zip baseName pluginPre appendix pluginName version pluginVersion } //控制build时包含哪些文件,排除哪些文件 processResources { // exclude everything // 用*.css没效果 // exclude '**/*.css' // except this file // include 'xx.xml' }