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.
110 lines
3.3 KiB
110 lines
3.3 KiB
import java.text.SimpleDateFormat
|
|
import java.util.*
|
|
|
|
plugins {
|
|
// id("org.jetbrains.kotlin.jvm")
|
|
// id("org.springframework.boot")
|
|
}
|
|
|
|
dependencies {
|
|
api("org.springframework.boot:spring-boot-starter-web")
|
|
api("org.clever:clever-spring")
|
|
api("org.clever:clever-core")
|
|
api("org.clever:clever-data-jdbc")
|
|
api("org.clever:clever-data-jdbc-meta")
|
|
api("org.clever:clever-data-redis")
|
|
api("org.clever:clever-web")
|
|
api("org.clever:clever-security")
|
|
// api("org.clever:clever-task")
|
|
// api("org.clever:clever-task-ext")
|
|
api("org.clever:clever-js-graaljs")
|
|
api("org.eclipse.paho:org.eclipse.paho.mqttv5.client:1.2.5")
|
|
// https://mvnrepository.com/artifact/com.github.oshi/oshi-core
|
|
api("com.github.oshi:oshi-core:6.8.2")
|
|
|
|
runtimeOnly("org.postgresql:postgresql")
|
|
runtimeOnly("mysql:mysql-connector-java")
|
|
runtimeOnly("com.oracle.database.jdbc:ojdbc8")
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
// java {
|
|
// setSrcDirs(listOf<String>())
|
|
// }
|
|
// withConvention(GroovySourceSet::class) {
|
|
// groovy {
|
|
// setSrcDirs(listOf("src/main/java", "src/main/groovy"))
|
|
// }
|
|
// }
|
|
}
|
|
}
|
|
|
|
//tasks.compileJava {
|
|
// enabled = false
|
|
//}
|
|
|
|
// 在源码目录中引入资源(如: mybatis xml文件)
|
|
tasks.processResources {
|
|
val includes = listOf("**/*.xml")
|
|
from("src/main/java") {
|
|
include(includes)
|
|
}
|
|
}
|
|
|
|
// 拷贝lib文件
|
|
tasks.register("copyJar", Copy::class) {
|
|
val libDir = layout.buildDirectory.dir("libs/lib").get()
|
|
delete(libDir)
|
|
from(configurations.runtimeClasspath)
|
|
into(libDir)
|
|
}
|
|
|
|
// 拷贝配置文件
|
|
tasks.register("copyResources", Copy::class) {
|
|
val configDir = layout.buildDirectory.dir("libs/config").get()
|
|
delete(configDir)
|
|
from("src/main/resources")
|
|
into(configDir)
|
|
}
|
|
|
|
// 配置启动jar
|
|
tasks.jar {
|
|
enabled = true
|
|
manifest.attributes["Main-Class"] = "com.yvan.workbench.StartWorkbench"
|
|
// lib/jar 加入 classPath
|
|
val classPaths = project.configurations.runtimeClasspath.get().files.map { file -> "lib/${file.name}" }.toMutableList()
|
|
// // resources 资源加入 classPath (当没有把resources资源编译进jar包时很有用)
|
|
// val resourcesFile = File(projectDir.absolutePath, "src/main/resources")
|
|
// val resourcesPath = resourcesFile.absolutePath
|
|
// resourcesFile.listFiles { file -> file.isFile }?.forEach { file ->
|
|
// var path = file.absolutePath
|
|
// if (path.startsWith(resourcesPath)) {
|
|
// path = path.substring(resourcesPath.length + 1)
|
|
// path = path.replace('\\', '/')
|
|
// }
|
|
// classPaths.add("config/$path")
|
|
// }
|
|
manifest.attributes["Class-Path"] = classPaths.joinToString(" ")
|
|
// println("### [${classPaths.joinToString(" ")}]")
|
|
}
|
|
|
|
// 触发class热部署
|
|
tasks.getByName("classes") {
|
|
doLast {
|
|
File("./build").mkdirs()
|
|
File("./build", ".hotReload").apply {
|
|
if (this.exists()) {
|
|
this.createNewFile()
|
|
}
|
|
this.appendText("${SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(Date())}\n")
|
|
println("> [触发class热部署] -> ${this.absolutePath}")
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.getByName("build") {
|
|
dependsOn("copyJar")
|
|
dependsOn("copyResources")
|
|
dependsOn("jar")
|
|
}
|
|
|