|
|
|
import com.google.common.io.Files
|
|
|
|
|
|
|
|
apply plugin: 'java-gradle-plugin'
|
|
|
|
|
|
|
|
mkdir 'templates'
|
|
|
|
sourceSets.main.resources.srcDir 'templates'
|
|
|
|
|
|
|
|
gradlePlugin {
|
|
|
|
plugins {
|
|
|
|
plugin {
|
|
|
|
id = 'io.sc.platform.gradle'
|
|
|
|
implementationClass = 'io.sc.platform.gradle.plugins.PlatformPlugin'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
implementation(
|
|
|
|
"org.springframework:spring-web",
|
|
|
|
"org.springframework:spring-core",
|
|
|
|
"com.fasterxml.jackson.core:jackson-core",
|
|
|
|
"com.fasterxml.jackson.core:jackson-annotations",
|
|
|
|
"com.fasterxml.jackson.core:jackson-databind",
|
|
|
|
"com.google.guava:guava:${guava_version}",
|
|
|
|
"net.lingala.zip4j:zip4j:2.11.5"
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
jar {
|
|
|
|
manifest {
|
|
|
|
attributes 'Main-Class': 'io.sc.platform.gradle.Application',
|
|
|
|
'Implementation-Version': archiveVersion,
|
|
|
|
'Implementation-Title': project.name
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* -----------------------------------------------------
|
|
|
|
* 将根目录中的文件复制到 templates/pgp/setup 目录
|
|
|
|
* -----------------------------------------------------
|
|
|
|
*/
|
|
|
|
def setupDir ="templates/pgp/setup";
|
|
|
|
task copySetup {}
|
|
|
|
tasks.copySetup.doFirst {
|
|
|
|
println "copy ../ --> ${setupDir}"
|
|
|
|
delete setupDir
|
|
|
|
mkdir setupDir
|
|
|
|
}
|
|
|
|
tasks.copySetup.doLast {
|
|
|
|
copy {
|
|
|
|
from "../"
|
|
|
|
into setupDir
|
|
|
|
|
|
|
|
include ".gitignore"
|
|
|
|
include "build.gradle"
|
|
|
|
include "build-version.gradle"
|
|
|
|
include "gradle.properties"
|
|
|
|
include "gradlew"
|
|
|
|
include "gradlew.bat"
|
|
|
|
include "gradle/**/*"
|
|
|
|
rename { name ->
|
|
|
|
return name=='build.gradle'?'build.gradle.txt':name; //为了避免 ide 错误
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 由于 gradle copy 插件无法复制 . 开头的文件,需单独处理
|
|
|
|
Files.copy(file('../.gitignore'),file("${setupDir}/gitignore"));
|
|
|
|
// 生成 CHANGELOG 文件
|
|
|
|
file("${setupDir}/CHANGELOG").write('');
|
|
|
|
// 生成 README.adoc 文件
|
|
|
|
file("${setupDir}/README.adoc").write('');
|
|
|
|
// 生成 setting.gradle 文件
|
|
|
|
file("${setupDir}/settings.gradle").write('');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* -----------------------------------------------------
|
|
|
|
* 将 app.platform 目录中的文件复制到 templates/pgp/app 目录
|
|
|
|
* -----------------------------------------------------
|
|
|
|
*/
|
|
|
|
def appDir ="templates/pgp/app";
|
|
|
|
task copyApp {}
|
|
|
|
tasks.copyApp.doFirst {
|
|
|
|
println "copy ../app.platform --> ${appDir}"
|
|
|
|
delete appDir
|
|
|
|
mkdir appDir
|
|
|
|
}
|
|
|
|
tasks.copyApp.doLast {
|
|
|
|
copy {
|
|
|
|
from "../app.platform"
|
|
|
|
into appDir
|
|
|
|
include "src/**/*"
|
|
|
|
include "build.gradle"
|
|
|
|
include "build-common.gradle"
|
|
|
|
include "build-jetty.gradle"
|
|
|
|
include "build-tomcat.gradle"
|
|
|
|
include "build-undertow.gradle"
|
|
|
|
include "gradle.properties"
|
|
|
|
exclude "**/rebel.xml"
|
|
|
|
rename { name ->
|
|
|
|
return name=='Application.java'?'Application.java.txt':name; //为了避免 ide 错误
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 生成 README.adoc 文件
|
|
|
|
file("${appDir}/README.adoc").write('');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* -----------------------------------------------------
|
|
|
|
* 生成插件模版
|
|
|
|
* -----------------------------------------------------
|
|
|
|
*/
|
|
|
|
task syncPluginTemplates {}
|
|
|
|
tasks.syncPluginTemplates.doLast {
|
|
|
|
|
|
|
|
}
|
|
|
|
syncPluginTemplates.dependsOn(copySetup,copyApp);
|
|
|
|
|
|
|
|
processResources.dependsOn(syncPluginTemplates);
|
|
|
|
|
|
|
|
/*
|
|
|
|
task zipFrontendResources() {}
|
|
|
|
tasks.zipFrontendResources.doFirst {
|
|
|
|
File srcDir = file('../../framework-base/org.wsp.framework.core.frontend');
|
|
|
|
File targetFile =file('./src/main/resources/framework-template/front-end/template.zip');
|
|
|
|
delete targetFile
|
|
|
|
|
|
|
|
println "开始执行压缩 ${srcDir.getAbsolutePath()} -> ${targetFile.getAbsolutePath()}"
|
|
|
|
|
|
|
|
net.lingala.zip4j.ZipFile zipFile =new net.lingala.zip4j.ZipFile(targetFile);
|
|
|
|
srcDir.eachFile {
|
|
|
|
if(it.isDirectory()){
|
|
|
|
if(!".DS_Store".equals(it.name)
|
|
|
|
&& !"node_modules".equals(it.name)
|
|
|
|
&& !"dist".equals(it.name)
|
|
|
|
&& !"build".equals(it.name)
|
|
|
|
&& !"java-src".equals(it.name)
|
|
|
|
){
|
|
|
|
zipFile.addFolder(it);
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
if(!"org.wsp.framework.core.frontend.iml".equals(it.name)
|
|
|
|
&& !"package-lock.json".equals(it.name)
|
|
|
|
){
|
|
|
|
zipFile.addFile(it);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
processResources.dependsOn(zipFrontendResources)
|
|
|
|
*/
|