build.gradle.kts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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. runtimeOnly(fileTree("$rootDir/libs") { include("*.jar") })
  57. }
  58. dependencyManagement {
  59. imports {
  60. mavenBom("org.springframework.cloud:spring-cloud-dependencies:${property("springCloudVersion")}")
  61. }
  62. }
  63. tasks.register<Jar>(name = "libJar") {
  64. archiveBaseName.set("${rootProject.name}-${project.name}-lib")
  65. from(project.the<SourceSetContainer>()["main"].output)
  66. include("**")
  67. exclude {
  68. it.name.endsWith("Application.class")
  69. }
  70. exclude {
  71. it.name.endsWith("ApplicationKt.class")
  72. }
  73. exclude {
  74. it.name.endsWith("Application${'$'}Companion.class")
  75. }
  76. }
  77. tasks.build { dependsOn(tasks.named("libJar")) }
  78. configurations {
  79. create("lib")
  80. }
  81. artifacts {
  82. add("lib", tasks["libJar"])
  83. }
  84. }
  85. configure(subprojects.filter { it.name != "service-api" && it.name != "service-nodb" }) {
  86. dependencies {
  87. implementation("org.springframework.boot:spring-boot-starter-data-jpa")
  88. implementation("org.springframework.boot:spring-boot-starter-webflux")
  89. implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
  90. runtimeOnly("mysql:mysql-connector-java")
  91. }
  92. }
  93. project("service-all") {
  94. dependencies {
  95. implementation(project(path = ":services:service-crud", configuration = "lib"))
  96. implementation(project(path = ":services:service-nodb", configuration = "lib"))
  97. }
  98. }
  99. project(":services") {
  100. tasks.jar {
  101. archiveBaseName.set("${rootProject.name}-${project.name}")
  102. subprojects {
  103. from(tasks.withType<JavaCompile>())
  104. from(tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>())
  105. include("**")
  106. exclude {
  107. it.name.endsWith("Application.class")
  108. }
  109. exclude {
  110. it.name.endsWith("ApplicationKt.class")
  111. }
  112. exclude {
  113. it.name.endsWith("Application${'$'}Companion.class")
  114. }
  115. }
  116. }
  117. publishing {
  118. publications {
  119. create<MavenPublication>("maven") {
  120. artifactId = "${rootProject.name}-${project.name}"
  121. from(components["java"])
  122. }
  123. }
  124. }
  125. }