build.gradle 7.8 KB

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