plugins { id "org.springframework.boot" version "2.5.0-M2" id "io.spring.dependency-management" version "1.0.11.RELEASE" id "checkstyle" id "java" } group = "run.halo.app" version = "1.4.7-beta.1" description = "Halo, An excellent open source blog publishing application." sourceCompatibility = JavaVersion.VERSION_11 checkstyle { toolVersion = "8.39" showViolations = false ignoreFailures = false } repositories { mavenLocal() // maven { // url "https://maven.aliyun.com/nexus/content/groups/public" // } mavenCentral() maven { url 'https://repo.spring.io/milestone' } jcenter() } configurations { implementation { exclude module: "spring-boot-starter-tomcat" exclude module: "slf4j-log4j12" exclude module: 'junit' } compileOnly { extendsFrom annotationProcessor } } bootJar { manifest { attributes "Implementation-Title": "Halo Application", "Implementation-Version": archiveVersion } } bootBuildImage.doFirst { // check data assert System.getenv("DOCKER_USERNAME") != null assert System.getenv("DOCKER_TOKEN") != null } bootBuildImage { // prepare data def tagLatest = Boolean.valueOf(System.getenv("TAG_LATEST")) def dockerImageName = System.getenv("DOCKER_IMAGE_NAME") def dockerUsername = System.getenv("DOCKER_USERNAME") def dockerToken = System.getenv("DOCKER_TOKEN") if (dockerImageName == null) { dockerImageName = "${dockerUsername}/halo" } if (!tagLatest) { dockerImageName = "${dockerImageName}:${project.version}" } // config plugin imageName = "${dockerImageName}" docker { publishRegistry { username = "${dockerUsername}" password = "${dockerToken}" email = "hi@halo.run" } } } ext { hutoolVersion = "5.3.8" upyunSdkVersion = "4.2.0" qiniuSdkVersion = "7.2.29" aliyunSdkVersion = "3.9.1" baiduSdkVersion = "0.10.36" qcloudSdkVersion = "5.6.25" minioSdkVersion = "7.1.4" swaggerVersion = "3.0.0" commonsFileUploadVersion = "1.4" commonsLangVersion = "3.10" httpclientVersion = "4.5.12" dataformatYamlVersion = "2.11.0" jgitVersion = "5.9.0.202009080501-r" flexmarkVersion = "0.62.2" thumbnailatorVersion = "0.4.13" image4jVersion = "0.7zensight1" flywayVersion = "7.5.1" h2Version = "1.4.197" levelDbVersion = "0.12" annotationsVersion = "3.0.1u2" zxingVersion = "3.4.0" huaweiObsVersion = "3.19.7" githubApiVersion = "1.84" templateInheritanceVersion = "0.4.RELEASE" jsoupVersion = "1.13.1" } dependencies { implementation "org.kohsuke:github-api:$githubApiVersion" 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 "com.sun.mail:jakarta.mail" implementation "cn.hutool:hutool-core:$hutoolVersion" implementation "cn.hutool:hutool-crypto:$hutoolVersion" implementation "cn.hutool:hutool-extra:$hutoolVersion" 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" 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:$dataformatYamlVersion" 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 "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}") developmentOnly "org.springframework.boot:spring-boot-devtools" } test { useJUnitPlatform() testLogging.showStandardStreams = true } task projectVersion { description = 'Prints current project version.' doLast { println project.version } }