|
|
@ -1,5 +1,7 @@ |
|
|
|
import org.gradle.api.artifacts.DependencyResolveDetails |
|
|
|
|
|
|
|
import java.util.zip.GZIPOutputStream |
|
|
|
|
|
|
|
apply from: "build-version.gradle" |
|
|
|
|
|
|
|
def isFrontendProject(currentDir){ |
|
|
@ -392,6 +394,31 @@ subprojects { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/*----------------------------------------------------------------- |
|
|
|
* pnpm re install |
|
|
|
*----------------------------------------------------------------*/ |
|
|
|
task frontendNpmReInstall(type:Exec){ |
|
|
|
if(isFrontendProject(file('.'))){ |
|
|
|
workingDir '.' |
|
|
|
if(org.gradle.internal.os.OperatingSystem.current().isWindows()){ |
|
|
|
commandLine 'cmd', '/c', 'pnpm', 'install' |
|
|
|
}else{ |
|
|
|
commandLine 'pnpm', 'install' |
|
|
|
} |
|
|
|
}else{ |
|
|
|
if(org.gradle.internal.os.OperatingSystem.current().isWindows()){ |
|
|
|
commandLine 'cmd', '/c', 'cd', '.' |
|
|
|
}else{ |
|
|
|
commandLine 'cd', '.' |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
tasks.frontendNpmReInstall.doFirst { |
|
|
|
if(isFrontendProject(file('.'))) { |
|
|
|
println '开始执行 pnpm re install ......'; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/*----------------------------------------------------------------- |
|
|
|
* pnpm sync |
|
|
|
*----------------------------------------------------------------*/ |
|
|
@ -647,6 +674,36 @@ subprojects { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
task gzipFrontend(){} |
|
|
|
tasks.gzipFrontend.doFirst { |
|
|
|
if(isFrontendProject(file('.'))) { |
|
|
|
println '开始执行 gzip frontend ......' |
|
|
|
} |
|
|
|
} |
|
|
|
tasks.frontendModule.doLast { |
|
|
|
if(isFrontendProject(file('.'))) { |
|
|
|
// 压缩前端 js 和 css |
|
|
|
def tree = fileTree('dist') { |
|
|
|
include '**/*.js' |
|
|
|
include '**/*.css' |
|
|
|
} |
|
|
|
tree.each { File file -> |
|
|
|
println file.getAbsolutePath() |
|
|
|
FileInputStream ins = new FileInputStream(file); |
|
|
|
GZIPOutputStream gos = new GZIPOutputStream(new FileOutputStream(file.getAbsolutePath() + ".gz")); |
|
|
|
def count; |
|
|
|
def data = new byte[1024]; |
|
|
|
while ((count = ins.read(data, 0, 1024)) != -1) { |
|
|
|
gos.write(data, 0, count); |
|
|
|
} |
|
|
|
gos.finish(); |
|
|
|
gos.flush(); |
|
|
|
gos.close(); |
|
|
|
ins.close(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/*----------------------------------------------------------------- |
|
|
|
* 打包 jar 之前处理前端资源 |
|
|
|
*----------------------------------------------------------------*/ |
|
|
@ -660,8 +717,9 @@ subprojects { |
|
|
|
// 定义前端构建任务的依赖及执行顺序 |
|
|
|
frontendNpmInstall.dependsOn(frontendUpdatePackageJson) |
|
|
|
frontendNpmSync.dependsOn(frontendNpmInstall) |
|
|
|
frontendNpmBuild.dependsOn(frontendNpmSync) |
|
|
|
frontendNpmProd.dependsOn(frontendNpmSync) |
|
|
|
frontendNpmReInstall.dependsOn(frontendNpmSync); |
|
|
|
frontendNpmBuild.dependsOn(frontendNpmReInstall) |
|
|
|
frontendNpmProd.dependsOn(frontendNpmReInstall) |
|
|
|
|
|
|
|
// 资源处理前进行前端模块的构建 |
|
|
|
// 设置方式: 通过命令行 -D 传入目标环境参数 |
|
|
@ -678,7 +736,8 @@ subprojects { |
|
|
|
frontendGenerateMenus.dependsOn(frontendGenerateI18n); |
|
|
|
frontendGenerateRoutes.dependsOn(frontendGenerateMenus); |
|
|
|
frontendModule.dependsOn(frontendGenerateRoutes); |
|
|
|
frontend.dependsOn(frontendModule); |
|
|
|
gzipFrontend.dependsOn(frontendModule); |
|
|
|
frontend.dependsOn(gzipFrontend); |
|
|
|
|
|
|
|
//tasks.preBuild.dependsOn(frontend); |
|
|
|
processResources.dependsOn(frontend) |
|
|
@ -687,13 +746,14 @@ subprojects { |
|
|
|
if(isFrontendProject(file('.'))) { |
|
|
|
if(project.name!='io.sc.platform.mvc.frontend'){ |
|
|
|
exclude("**/${project.name}/*.*"); |
|
|
|
// exclude("**/${project.name}/javascript/codemirror.*"); |
|
|
|
// exclude("**/${project.name}/javascript/echarts.*"); |
|
|
|
// exclude("**/${project.name}/javascript/platform-core.*"); |
|
|
|
// exclude("**/${project.name}/javascript/quasar.*"); |
|
|
|
// exclude("**/${project.name}/javascript/vue.*"); |
|
|
|
// exclude("**/${project.name}/fonts/*.*"); |
|
|
|
// exclude("**/${project.name}/webjars/**/*.*"); |
|
|
|
exclude("**/${project.name}/javascript/codemirror.*"); |
|
|
|
exclude("**/${project.name}/javascript/echarts.*"); |
|
|
|
exclude("**/${project.name}/javascript/maxgraph.*"); |
|
|
|
exclude("**/${project.name}/javascript/platform-core.*"); |
|
|
|
exclude("**/${project.name}/javascript/quasar.*"); |
|
|
|
exclude("**/${project.name}/javascript/vue.*"); |
|
|
|
exclude("**/${project.name}/fonts/*.*"); |
|
|
|
exclude("**/${project.name}/webjars/**/*.*"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|