build.gradle.kts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. group = rootProject.group
  2. version = rootProject.version
  3. plugins {
  4. id("java")
  5. id("io.spring.dependency-management")
  6. id("org.springframework.boot") apply false
  7. kotlin("jvm")
  8. kotlin("plugin.spring")
  9. kotlin("plugin.jpa") apply false
  10. }
  11. java {
  12. disableAutoTargetJvm()
  13. withSourcesJar()
  14. // withJavadocJar()
  15. }
  16. repositories {
  17. maven {
  18. name = "aliyun"
  19. url = uri("http://maven.aliyun.com/nexus/content/groups/public/")
  20. }
  21. // mavenCentral()
  22. }
  23. allprojects {
  24. apply(plugin = "java")
  25. tasks {
  26. processResources {
  27. // expand("db.user" to dbUser)
  28. // expand 在处理奇数个中文的时候会出现乱码情况
  29. // 所以这里只处理application.yml,忽略其他资源文件,避免处理后产生乱码
  30. filesMatching("application.yml") {
  31. expand(project.properties)
  32. }
  33. // expand(project.properties)
  34. }
  35. }
  36. }
  37. subprojects {
  38. apply(plugin = "org.springframework.boot")
  39. apply(plugin = "io.spring.dependency-management")
  40. apply(plugin = "org.jetbrains.kotlin.jvm")
  41. apply(plugin = "org.jetbrains.kotlin.plugin.spring")
  42. apply(plugin = "org.jetbrains.kotlin.plugin.jpa")
  43. dependencies {
  44. api(platform(project(":platform")))
  45. api(kotlin("reflect"))
  46. api(kotlin("stdlib-jdk8"))
  47. implementation("org.springframework.boot:spring-boot-starter-webflux")
  48. implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
  49. implementation("org.springframework.cloud:spring-cloud-starter-openfeign")
  50. implementation("org.springframework.boot:spring-boot-configuration-processor")
  51. implementation("com.alibaba:fastjson")
  52. implementation("commons-io:commons-io")
  53. implementation("io.jsonwebtoken:jjwt-api")
  54. implementation("io.jsonwebtoken:jjwt-impl")
  55. implementation("io.jsonwebtoken:jjwt-jackson")
  56. implementation("javax.validation:validation-api")
  57. runtimeOnly(fileTree("$rootDir/libs") { include("*.jar") })
  58. }
  59. dependencyManagement {
  60. imports {
  61. mavenBom("org.springframework.cloud:spring-cloud-dependencies:${property("springCloudVersion")}")
  62. }
  63. }
  64. tasks.register<Jar>(name = "libJar") {
  65. archiveBaseName.set("${rootProject.name}-${project.name}-lib")
  66. from(project.the<SourceSetContainer>()["main"].output)
  67. include("**")
  68. exclude {
  69. it.name.endsWith("Application.class")
  70. }
  71. exclude {
  72. it.name.endsWith("ApplicationKt.class")
  73. }
  74. exclude {
  75. it.name.endsWith("Application${'$'}Companion.class")
  76. }
  77. }
  78. tasks.build { dependsOn(tasks.named("libJar")) }
  79. configurations {
  80. create("lib")
  81. }
  82. artifacts {
  83. add("lib", tasks["libJar"])
  84. }
  85. }
  86. configure(subprojects.filter { it.name != "service-api" && it.name != "service-nodb" }) {
  87. dependencies {
  88. implementation("org.springframework.boot:spring-boot-starter-data-jpa")
  89. implementation("org.springframework.boot:spring-boot-starter-webflux")
  90. implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
  91. runtimeOnly("mysql:mysql-connector-java")
  92. }
  93. }
  94. project("service-all") {
  95. dependencies {
  96. implementation(project(path = ":services:service-crud", configuration = "lib"))
  97. implementation(project(path = ":services:service-nodb", configuration = "lib"))
  98. }
  99. }
  100. project(":services") {
  101. tasks.jar {
  102. archiveBaseName.set("${rootProject.name}-${project.name}")
  103. subprojects {
  104. from(tasks.withType<JavaCompile>())
  105. from(tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>())
  106. include("**")
  107. exclude {
  108. it.name.endsWith("Application.class")
  109. }
  110. exclude {
  111. it.name.endsWith("ApplicationKt.class")
  112. }
  113. exclude {
  114. it.name.endsWith("Application${'$'}Companion.class")
  115. }
  116. }
  117. }
  118. publishing {
  119. publications {
  120. create<MavenPublication>("maven") {
  121. artifactId = "${rootProject.name}-${project.name}"
  122. from(components["java"])
  123. }
  124. }
  125. }
  126. }