/* * 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" def pluginInfo = getPluginInfo() pluginPre = "fine-plugin" // 这里读取的是插件的id,开发者可修改为固定的名字 pluginName = pluginInfo.id pluginVersion = pluginInfo.version } /*读取plugin.xml中的version*/ def getPluginInfo(){ def xmlFile = "./plugin.xml" def plugin = new XmlParser().parse(xmlFile) def version = plugin.version[0].text() def id = plugin.id[0].text() return ["id":id,"version":version] } 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("encrypt.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/" + "$pluginPre"+"-$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' }