mybatis-plus/build.gradle
2024-10-21 14:47:27 +08:00

259 lines
9.7 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import java.time.LocalDateTime
allprojects {
group APP_GROUP
version APP_VERSION
}
ext {
configuration = [
javaVersion = JavaVersion.VERSION_21
]
libraries = [
mybatisVersion = '3.5.16',
mybatisSpringVersion = '2.1.2',
mybatisSpringBootStarterVersion = '2.3.2',
springVersion = '5.3.39',
springBootVersion = '2.7.18',
springBoot3Version = '3.3.4',
springCloudVersion = '3.1.8',
junitVersion = '5.11.0',
]
lib = [
"kotlin-reflect" : "org.jetbrains.kotlin:kotlin-reflect:2.0.20",
"kotlin-stdlib-jdk8" : "org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.20",
"mybatis" : "org.mybatis:mybatis:${mybatisVersion}",
"mybatis-spring" : "org.mybatis:mybatis-spring:${mybatisSpringVersion}",
"mybatis-thymeleaf" : "org.mybatis.scripting:mybatis-thymeleaf:1.0.4",
"mybatis-freemarker" : "org.mybatis.scripting:mybatis-freemarker:1.3.0",
"mybatis-velocity" : "org.mybatis.scripting:mybatis-velocity:2.1.2",
"spring-context-support" : "org.springframework:spring-context-support:${springVersion}",
"spring-jdbc" : "org.springframework:spring-jdbc:${springVersion}",
"spring-tx" : "org.springframework:spring-tx:${springVersion}",
"spring-web" : "org.springframework:spring-web:${springVersion}",
"spring-aop" : "org.springframework:spring-aop:${springVersion}",
"cglib" : "cglib:cglib:3.3.0",
"imadcn" : "com.imadcn.framework:idworker:1.6.0",
"spring-cloud-commons" : "org.springframework.cloud:spring-cloud-commons:${springCloudVersion}",
"aspectjweaver" : "org.aspectj:aspectjweaver:1.9.22.1",
"slf4j-api" : "org.slf4j:slf4j-api:1.7.36",
//copy
"mybatis-spring-boot-starter": "org.mybatis.spring.boot:mybatis-spring-boot-starter:${mybatisSpringBootStarterVersion}",
//test
"spring-test" : "org.springframework:spring-test:${springVersion}",
"assertj-core" : "org.assertj:assertj-core:3.26.3",
"junit-jupiter" : "org.junit.jupiter:junit-jupiter:${junitVersion}",
"fastjson" : "com.alibaba:fastjson:2.0.53",
"jackson" : "com.fasterxml.jackson.core:jackson-databind:2.17.2",
"gson" : "com.google.code.gson:gson:2.11.0",
"lagarto" : "org.jodd:jodd-lagarto:6.0.6",
//datasource
"p6spy" : "p6spy:p6spy:3.9.1",
"sqlserver" : "com.microsoft.sqlserver:sqljdbc4:4.0",
"postgresql" : "org.postgresql:postgresql:42.7.4",
"oracle" : fileTree(dir: 'libs', includes: ['ojdbc8.jar']),
"dm" : fileTree(dir: 'libs', includes: ["jdbcDriver-18.jar"]),
"h2" : "com.h2database:h2:2.3.232",
"mysql" : "com.mysql:mysql-connector-j:9.0.0",
"sqlite" : "org.xerial:sqlite-jdbc:3.46.1.0",
"firebird" : "org.firebirdsql.jdbc:jaybird:5.0.5.java8",
//cache
"mybatis-caffeine" : "org.mybatis.caches:mybatis-caffeine:1.2.0",
//code generator
"velocity" : "org.apache.velocity:velocity-engine-core:2.4",
"freemarker" : "org.freemarker:freemarker:2.3.33",
"beetl" : "com.ibeetl:beetl:3.17.0.RELEASE",
"swagger-annotations" : "io.swagger:swagger-annotations:1.6.14",
"enjoy" : "com.jfinal:enjoy:5.2.2",
"logback-classic" : "ch.qos.logback:logback-classic:1.5.8",
]
}
description = "Mybatis 增强工具包 - 只做增强不做改变简化CRUD操作"
subprojects {
apply plugin: 'java-library'
apply plugin: 'signing'
apply plugin: 'maven-publish'
apply plugin: 'tech.yanand.maven-central-publish'
apply plugin: "io.freefair.lombok"
sourceCompatibility = "${javaVersion}"
targetCompatibility = "${javaVersion}"
lombok {
version = "1.18.32"
}
compileJava {
options.release = 8
}
repositories {
mavenLocal()
maven { url "https://maven.aliyun.com/repository/public" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
mavenCentral()
}
dependencies {
testImplementation "${lib["assertj-core"]}"
testImplementation "${lib["junit-jupiter"]}"
testImplementation "org.mockito:mockito-junit-jupiter:5.13.0"
testImplementation "${lib["lagarto"]}"
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
options.warnings = false
options.deprecation = true
options.compilerArgs += ["-parameters"]
}
tasks.withType(GenerateModuleMetadata) {
enabled = false
}
jar {
into("META-INF/") {
from rootProject.file("LICENSE")
}
into("META-INF/maven/$project.group/$project.name") {
from { generatePomFileForMavenJavaPublication }
rename ".*", "pom.xml"
}
afterEvaluate {
manifest {
attributes 'Implementation-Title': archiveBaseName
attributes 'Implementation-Version': archiveVersion
attributes 'Built-Gradle': gradle.gradleVersion
attributes 'Bundle-DocURL': 'https://baomidou.com/'
attributes 'Build-OS': System.getProperty("os.name")
attributes 'Built-By': System.getProperty("user.name")
attributes 'Build-Jdk': System.getProperty("java.version")
attributes 'Build-Timestamp': LocalDateTime.now().format("yyyy-MM-dd HH:mm:ss")
attributes 'Automatic-Module-Name': "${project.group}.${project.name.replaceAll("-", ".")}"
}
}
}
//noinspection GroovyAssignabilityCheck
task sourcesJar(type: Jar) {
archiveClassifier = 'sources'
from sourceSets.main.allSource
}
javadoc {
afterEvaluate {
configure(options) {
encoding "UTF-8"
charSet 'UTF-8'
author true
version true
failOnError false
links "http://docs.oracle.com/javase/8/docs/api"
}
}
}
test {
dependsOn("cleanTest", "generatePomFileForMavenJavaPublication")
useJUnitPlatform()
exclude("**/phoenix/**")
exclude("**/postgresql/**")
// exclude("**/generator/**")
}
task cleanBuildDir(type: Delete) {
delete "${projectDir}/out"
}
tasks.clean.dependsOn(cleanBuildDir)
task javadocJar(type: Jar) {
archiveClassifier = 'javadoc'
from javadoc
}
tasks.whenTaskAdded { task ->
if (task.name.contains('signMavenJavaPublication')) {
task.enabled = new File(project.property('signing.secretKeyRingFile') as String).isFile()
}
}
publishing {
repositories {
maven {
name = "Local"
url = layout.buildDirectory.dir('repos/bundles')
}
}
// use example : ./gradlew clean build publish publishToMavenCentralPortal -DauthToken='xxxxxx' -x test
mavenCentral {
repoDir = layout.buildDirectory.dir('repos/bundles')
// Base64 encoded of "username:password"
authToken = System.getProperty("authToken")
// 默认自动发布 AUTOMATIC
publishingType = 'USER_MANAGED'
}
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourcesJar
artifact javadocJar
pom {
name = 'mybatis-plus'
packaging 'jar'
description = 'An enhanced toolkit of Mybatis to simplify development.'
url = 'https://github.com/baomidou/mybatis-plus'
scm {
connection = 'scm:git@github.com:Codearte/gradle-nexus-staging-plugin.git'
developerConnection = 'scm:git@github.com:Codearte/gradle-nexus-staging-plugin.git'
url = 'https://github.com/baomidou/mybatis-plus'
}
licenses {
license {
name = 'The Apache License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id = 'baomidou'
name = 'hubin'
email = 'jobob@qq.com'
}
}
withXml {
def root = asNode()
root.dependencies.'*'.findAll {
def d = it
d.scope.text() == 'runtime' && project.configurations.findByName("implementation").allDependencies.find { dep ->
dep.name == it.artifactId.text()
}.each() {
d.scope*.value = 'compile'
d.appendNode('optional', true)
}
}
}
}
}
}
signing {
sign publishing.publications.mavenJava
}
}
}