build.gradle 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. // 编译脚本
  2. buildscript {
  3. ext {
  4. // https://start.spring.io/actuator/info
  5. springBootVersion = "3.1.1"
  6. mybatisPlusVersion = "3.5.3.1"
  7. }
  8. // 仓库配置
  9. repositories {
  10. mavenLocal()
  11. maven { url 'https://maven.aliyun.com/repository/central' }
  12. maven { url 'https://maven.aliyun.com/repository/spring' }
  13. maven { url 'https://maven.aliyun.com/repository/google' }
  14. maven { url 'https://repo.spring.io/release' }
  15. maven { url 'https://repo.spring.io/milestone' }
  16. }
  17. dependencies {
  18. classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
  19. }
  20. }
  21. description = "爱组搭低代码组件化开发平台"
  22. // 项目配置
  23. allprojects {
  24. group "com.aizuda"
  25. }
  26. // 子模块配置
  27. subprojects {
  28. apply plugin: 'java-library'
  29. apply plugin: 'maven-publish'
  30. // apply plugin: 'signing'
  31. apply plugin: "io.spring.dependency-management"
  32. tasks.withType(JavaCompile) {
  33. options.encoding = 'UTF-8'
  34. options.warnings = false
  35. }
  36. // 仓库配置
  37. repositories {
  38. mavenLocal()
  39. maven { url 'https://maven.aliyun.com/repository/central' }
  40. maven { url 'https://maven.aliyun.com/repository/spring' }
  41. maven { url 'https://maven.aliyun.com/repository/google' }
  42. maven { url 'https://repo.spring.io/release' }
  43. maven { url 'https://repo.spring.io/milestone' }
  44. maven { url 'https://repo.spring.io/snapshot' }
  45. mavenCentral()
  46. }
  47. configurations {
  48. all*.exclude group: "ch.qos.logback"
  49. all*.exclude module: "spring-boot-starter-logging"
  50. // 使用Undertow 替代Tomcat
  51. all*.exclude group: "org.apache.tomcat"
  52. all*.exclude group: "org.apache.tomcat.embed"
  53. all*.exclude module: "spring-boot-starter-tomcat"
  54. }
  55. // 依赖管理
  56. dependencyManagement {
  57. imports {
  58. mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
  59. }
  60. dependencies {
  61. // 文档
  62. dependency("org.springdoc:springdoc-openapi-starter-common:2.1.0")
  63. dependency("jakarta.servlet:jakarta.servlet-api:6.0.0")
  64. // 工具类
  65. dependency("org.jodd:jodd-bean:5.1.6")
  66. dependency("commons-io:commons-io:2.11.0")
  67. dependency("commons-collections:commons-collections:3.2.2")
  68. dependency("org.apache.commons:commons-lang3:3.12.0")
  69. dependency("com.lmax:disruptor:3.4.4")
  70. // 爱组搭
  71. dependency("com.aizuda:aizuda-toolkit:0.0.3")
  72. // 单点登录
  73. dependency("com.baomidou:kisso:3.9.1")
  74. // orm db
  75. dependency("com.baomidou:mybatis-plus-boot-starter:${mybatisPlusVersion}")
  76. dependency("com.baomidou:mybatis-plus-core:${mybatisPlusVersion}")
  77. dependency("com.baomidou:mybatis-plus-annotation:${mybatisPlusVersion}")
  78. dependency("com.baomidou:mybatis-plus-extension:${mybatisPlusVersion}")
  79. dependency("org.postgresql:postgresql:42.5.1")
  80. }
  81. }
  82. // 依赖配置
  83. dependencies {
  84. compileOnly("org.projectlombok:lombok")
  85. annotationProcessor("org.projectlombok:lombok")
  86. testAnnotationProcessor("org.projectlombok:lombok")
  87. testCompileOnly("org.projectlombok:lombok")
  88. // 为了减少依赖 jar 体量,非公共依赖不要申明为 api 必须遵守在负责人同意允许后在对应项目中添加
  89. compileOnly("org.springframework.boot:spring-boot-starter-log4j2")
  90. compileOnly("jakarta.servlet:jakarta.servlet-api")
  91. // 编译测试
  92. testImplementation("org.springframework.boot:spring-boot-starter-test")
  93. }
  94. sourceCompatibility = JavaVersion.VERSION_17
  95. targetCompatibility = JavaVersion.VERSION_17
  96. tasks.withType(JavaCompile) {
  97. options.encoding = 'UTF-8'
  98. options.warnings = false
  99. options.deprecation = true
  100. options.compilerArgs += ["-parameters"]
  101. }
  102. tasks.withType(GenerateModuleMetadata) {
  103. enabled = false
  104. }
  105. task sourcesJar(type: Jar, dependsOn: classes) {
  106. archiveClassifier = 'sources'
  107. from sourceSets.main.allSource
  108. }
  109. // javadoc {
  110. // options {
  111. // encoding "UTF-8"
  112. // charSet 'UTF-8'
  113. // author true
  114. // version true
  115. // failOnError false
  116. // links "http://docs.oracle.com/javase/7/docs/api"
  117. // }
  118. // }
  119. //
  120. // task javadocJar(type: Jar) {
  121. // archiveClassifier = 'javadoc'
  122. // from javadoc
  123. // }
  124. // tasks.whenTaskAdded { task ->
  125. // if (task.name.contains('signMavenJavaPublication')) {
  126. // task.enabled = new File(project.property('signing.secretKeyRingFile') as String).isFile()
  127. // }
  128. // }
  129. publishing {
  130. repositories {
  131. maven {
  132. def userName = System.getProperty("un")
  133. def passWord = System.getProperty("ps")
  134. def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
  135. def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
  136. url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
  137. credentials {
  138. username userName
  139. password passWord
  140. }
  141. }
  142. }
  143. publications {
  144. mavenJava(MavenPublication) {
  145. from components.java
  146. artifact sourcesJar
  147. // artifact javadocJar
  148. pom {
  149. name = 'aizuda-components'
  150. packaging 'jar'
  151. description = 'aizuda components.'
  152. url = 'https://github.com/aizuda/aizuda-components'
  153. scm {
  154. connection = 'scm:git@github.com:Codearte/gradle-nexus-staging-plugin.git'
  155. developerConnection = 'scm:git@github.com:Codearte/gradle-nexus-staging-plugin.git'
  156. url = 'https://github.com/aizuda/aizuda-components'
  157. }
  158. licenses {
  159. license {
  160. name = 'The Apache License, Version 2.0'
  161. url = 'https://www.apache.org/licenses/LICENSE-2.0.txt'
  162. }
  163. }
  164. developers {
  165. developer {
  166. id = 'aizuda'
  167. name = '青苗'
  168. email = 'jobob@qq.com'
  169. }
  170. }
  171. withXml {
  172. def root = asNode()
  173. root.dependencies.'*'.findAll {
  174. def d = it
  175. d.scope.text() == 'runtime' && project.configurations.findByName("implementation").allDependencies.find { dep ->
  176. dep.name == it.artifactId.text()
  177. }.each() {
  178. d.scope*.value = 'compile'
  179. d.appendNode('optional', true)
  180. }
  181. }
  182. }
  183. }
  184. }
  185. }
  186. // signing {
  187. // sign publishing.publications.mavenJava
  188. // }
  189. }
  190. }