build.gradle.kts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. val patchVersion: String by project
  2. group = "jit.xms"
  3. version = "${rootProject.version}.$patchVersion"
  4. plugins {
  5. id("java")
  6. id("io.spring.dependency-management")
  7. id("org.springframework.boot")
  8. kotlin("jvm")
  9. kotlin("plugin.spring")
  10. kotlin("plugin.jpa")
  11. }
  12. repositories {
  13. // 阿里云镜像
  14. maven { url = uri("https://maven.aliyun.com/repository/public") }
  15. maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
  16. maven { url = uri("https://maven.aliyun.com/repository/spring") }
  17. maven { url = uri("https://maven.aliyun.com/repository/spring-plugin") }
  18. // gradle
  19. maven { url = uri("https://plugins.gradle.org/m2/") }
  20. }
  21. dependencies {
  22. api(platform(project(":platform")))
  23. implementation(kotlin("reflect"))
  24. implementation(kotlin("stdlib-jdk8"))
  25. implementation("commons-io:commons-io")
  26. implementation("org.apache.commons:commons-dbcp2")
  27. implementation("org.springframework.boot:spring-boot-starter-jdbc:2.3.3.RELEASE")
  28. runtimeOnly("mysql:mysql-connector-java:5.1.34")
  29. runtimeOnly(fileTree("$rootDir/libs") { include("*.jar") })
  30. }
  31. tasks.register<Sync>("script") {
  32. from("script")
  33. into("$buildDir/script")
  34. expand("name" to project.name, "version" to version)
  35. }
  36. tasks.register<Sync>("ext-libs") {
  37. from(configurations.runtimeClasspath)
  38. into("$buildDir/dist/ext")
  39. }
  40. tasks.register<Copy>("dist") {
  41. dependsOn(tasks.named("bootJar"), tasks.named("ext-libs"), tasks.named("script"))
  42. into("$rootDir/dist/${project.name}")
  43. from(tasks["bootJar"].outputs)
  44. from("$buildDir/script")
  45. val splitJars: String? by project
  46. if ("true".equals(splitJars, true)) {
  47. from("$buildDir/dist/ext") {
  48. include("*.jar")
  49. into("../ext")
  50. }
  51. }
  52. }
  53. tasks.getByName<org.springframework.boot.gradle.tasks.bundling.BootJar>("bootJar") {
  54. // 排除所有jar包
  55. val splitJars: String? by project
  56. if ("true".equals(splitJars, true)) {
  57. exclude("*.jar")
  58. // 依赖复制任务
  59. // dependsOn(tasks.named("ext-libs"), tasks.named("script"))
  60. // 指定依赖包的路径
  61. manifest {
  62. val classPath = configurations.runtimeClasspath.get().files
  63. .joinToString(" ") { "../ext/${it.name}" }
  64. attributes("Class-Path" to classPath)
  65. }
  66. }
  67. }