plugins { id "org.springframework.boot" version "2.5.12" id "io.spring.dependency-management" version "1.0.11.RELEASE" id "checkstyle" id "java" } group = "run.halo.app" description = "Halo, An excellent open source blog publishing application." sourceCompatibility = JavaVersion.VERSION_11 checkstyle { toolVersion = "8.39" showViolations = false ignoreFailures = false } repositories { maven { url 'https://maven.aliyun.com/repository/public/' } maven { url 'https://maven.aliyun.com/repository/spring/' } mavenLocal() mavenCentral() } configurations { implementation { exclude module: "spring-boot-starter-tomcat" exclude module: "slf4j-log4j12" exclude module: 'junit' } compileOnly { extendsFrom annotationProcessor } } configurations.all { // Aligning log4j dependency versions to 2.17.1 resolutionStrategy.eachDependency { DependencyResolveDetails details -> if (details.requested.group == 'org.apache.logging.log4j') { details.useVersion '2.17.1' } } } bootJar { manifest { attributes "Implementation-Title": "Halo Application", "Implementation-Version": archiveVersion } } ext { guavaVersion = '31.0.1-jre' upyunSdkVersion = '4.2.3' qiniuSdkVersion = '7.8.0' aliyunSdkVersion = '3.13.2' baiduSdkVersion = '0.10.36' qcloudSdkVersion = '5.6.61' minioSdkVersion = '7.1.4' swaggerVersion = "3.0.0" commonsFileUploadVersion = "1.4" commonsLangVersion = '3.12.0' httpclientVersion = '4.5.13' jgitVersion = "5.9.0.202009080501-r" flexmarkVersion = "0.62.2" thumbnailatorVersion = '0.4.14' image4jVersion = "0.7zensight1" flywayVersion = "7.15.0" h2Version = "1.4.199" levelDbVersion = "0.12" annotationsVersion = "3.0.1u2" zxingVersion = '3.4.1' huaweiObsVersion = '3.21.4' templateInheritanceVersion = "0.4.RELEASE" jsoupVersion = '1.14.3' embeddedRedisVersion = '0.6' diffUtilsVersion = '4.11' commonsImagingVersion = "1.0-alpha3" } dependencies { implementation "org.springframework.boot:spring-boot-starter-actuator" implementation "org.springframework.boot:spring-boot-starter-data-jpa" implementation "org.springframework.boot:spring-boot-starter-web" implementation "org.springframework.boot:spring-boot-starter-jetty" implementation "org.springframework.boot:spring-boot-starter-freemarker" implementation "org.springframework.boot:spring-boot-starter-validation" implementation "org.springframework.boot:spring-boot-starter-data-redis" implementation "com.sun.mail:jakarta.mail" implementation "com.google.guava:guava:$guavaVersion" implementation "com.upyun:java-sdk:$upyunSdkVersion" implementation "com.qiniu:qiniu-java-sdk:$qiniuSdkVersion" implementation "com.aliyun.oss:aliyun-sdk-oss:$aliyunSdkVersion" implementation "com.baidubce:bce-java-sdk:$baiduSdkVersion" implementation "com.qcloud:cos_api:$qcloudSdkVersion" // TODO Upgrade huaweicloud sdk dependence to fix log4j 0-day vulnerability implementation("com.huaweicloud:esdk-obs-java:$huaweiObsVersion") implementation "io.minio:minio:$minioSdkVersion" implementation "io.springfox:springfox-boot-starter:$swaggerVersion" implementation "commons-fileupload:commons-fileupload:$commonsFileUploadVersion" implementation "org.apache.commons:commons-lang3:$commonsLangVersion" implementation "org.apache.httpcomponents:httpclient:$httpclientVersion" implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml" implementation "org.eclipse.jgit:org.eclipse.jgit:$jgitVersion" implementation "com.google.code.findbugs:annotations:$annotationsVersion" implementation "com.vladsch.flexmark:flexmark:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-attributes:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-autolink:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-emoji:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-escaped-character:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-gfm-strikethrough:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-gfm-tasklist:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-ins:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-media-tags:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-tables:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-toc:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-superscript:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-yaml-front-matter:$flexmarkVersion" implementation "com.vladsch.flexmark:flexmark-ext-gitlab:$flexmarkVersion" implementation "kr.pe.kwonnam.freemarker:freemarker-template-inheritance:$templateInheritanceVersion" implementation "net.coobird:thumbnailator:$thumbnailatorVersion" implementation "net.sf.image4j:image4j:$image4jVersion" implementation "org.flywaydb:flyway-core:$flywayVersion" implementation "com.google.zxing:core:$zxingVersion" implementation "io.github.java-diff-utils:java-diff-utils:$diffUtilsVersion" implementation "org.apache.commons:commons-imaging:$commonsImagingVersion" implementation "org.iq80.leveldb:leveldb:$levelDbVersion" runtimeOnly "com.h2database:h2:$h2Version" runtimeOnly "mysql:mysql-connector-java" compileOnly "org.projectlombok:lombok" annotationProcessor "org.projectlombok:lombok" testCompileOnly "org.projectlombok:lombok" testAnnotationProcessor "org.projectlombok:lombok" testImplementation("org.springframework.boot:spring-boot-starter-test") { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } testImplementation "org.jsoup:jsoup:$jsoupVersion" testImplementation ("com.github.kstyrc:embedded-redis:$embeddedRedisVersion") { exclude group: 'org.slf4j', module: 'slf4j-simple' } developmentOnly "org.springframework.boot:spring-boot-devtools" } test { useJUnitPlatform() }