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.
 
 
 
 
 
 

150 lines
4.3 KiB

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)
*/