build.gradle 4.19 KB
plugins {
    id 'java'
    id 'idea'
    id 'application'
    id 'org.springframework.boot' version '2.5.12'
    id 'io.spring.dependency-management' version '1.1.6'
    id 'com.google.protobuf' version '0.9.4'
}

repositories {
    maven { url 'https://maven.aliyun.com/repository/public/' }
    mavenLocal()
    mavenCentral()
}

application {
    mainClassName = 'com.infoloop.tianting.App'
    applicationDefaultJvmArgs = [
            '-Denv.propertiesFilePath=file:application.properties',
            '-Dlogging.path=logs']
}

ext {
    grpcVersion = '1.62.2'
    protobufVersion = '3.25.3'
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-actuator' //监视和管理
    implementation 'org.springframework.boot:spring-boot-starter-validation' //参数校验
    implementation 'org.springframework.boot:spring-boot-starter-aop' //aop
    implementation 'org.springframework.retry:spring-retry' //retry
    implementation 'com.github.xiaoymin:knife4j-spring-boot-starter:2.0.9'//knife4j
    implementation 'cn.dev33:sa-token-spring-boot-starter:1.38.0' //saToken
    implementation 'cn.dev33:sa-token-redis-jackson:1.38.0' // Sa-Token 整合 Redis (jackson 序列化)
    implementation 'cn.dev33:sa-token-jwt:1.38.0'// Sa-Token 整合 jwt
    implementation 'org.apache.commons:commons-pool2' //Lettuce 对象池
    implementation 'io.lettuce:lettuce-core:6.0.0.RC2'// Lettuce
    implementation 'org.redisson:redisson:3.27.2'// redisson分布式锁
    implementation 'com.squareup.okhttp3:okhttp' //okhttp3
    implementation "org.apache.poi:poi:4.1.2" //poi
    implementation "org.apache.poi:poi-ooxml:4.1.2" //poi
    implementation 'cn.hutool:hutool-all:5.8.27' //huTool-util
    implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.11.2' // Jackson XML 模块
    implementation 'org.springframework.boot:spring-boot-starter-websocket'// websocket

    implementation 'com.aliyun:aliyun-java-sdk-core:4.6.4' //阿里云SDK核心库
    implementation 'com.aliyun:aliyun-java-sdk-dysmsapi:2.2.1'//阿里云短信服务SDK
    implementation 'com.aliyun:aliyun-java-sdk-dm:3.3.2'//阿里云邮件服务SDK
    implementation "com.aliyun.oss:aliyun-sdk-oss:3.11.1"//阿里云OSS服务

    implementation "io.zipkin.brave:brave:5.12.5"
    implementation "io.zipkin.brave:brave-context-slf4j:5.12.5"
    implementation "io.zipkin.reporter2:zipkin-sender-urlconnection:2.15.1"

    implementation "io.grpc:grpc-netty-shaded:${grpcVersion}"
    implementation "io.grpc:grpc-protobuf:${grpcVersion}"
    implementation "io.grpc:grpc-stub:${grpcVersion}"
    implementation "com.google.protobuf:protobuf-java-util:${protobufVersion}"
    compileOnly 'org.apache.tomcat:annotations-api:6.0.53' // necessary for Java 9+

//    compileOnly 'org.projectlombok:lombok'
//    annotationProcessor 'org.projectlombok:lombok'
    compileOnly 'org.projectlombok:lombok:1.18.24'
    annotationProcessor 'org.projectlombok:lombok:1.18.24'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:${protobufVersion}"
    }
    plugins {
        grpc {
            artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}"
        }
    }
    generateProtoTasks {
        all().each { task ->
            task.plugins {
                grpc {}
            }
        }
    }
}

tasks.withType(JavaCompile).configureEach {
    it.options.incremental = true
    it.options.compilerArgs += ["-Xlint:unchecked", "-Xlint:deprecation"]
    it.options.forkOptions.jvmArgs = ['-Xmx2g', '-XX:MaxMetaspaceSize=512m']
    it.options.encoding = "UTF-8"
    it.options.fork = true
}

tasks {
    compileJava {
        dependsOn generateProto
        source fileTree('build/generated/source/proto/main/java')
    }
}


sourceSets {
    main {
        java {
            srcDirs 'build/generated/source/proto/main/grpc'
            srcDirs 'build/generated/source/proto/main/java'
            srcDirs 'build/generated/sources/annotationProcessor/java/main'
            srcDirs 'build/generated/sources/headers/java/main'
        }
    }
}

test {
    enabled = false
    useJUnitPlatform()
}