plugins { id 'org.springframework.boot' version '3.0.4' id 'io.spring.dependency-management' version '1.1.0' id "com.gorylenko.gradle-git-properties" version "2.3.2" id "checkstyle" id 'java' id 'jacoco' id "de.undercouch.download" version "5.3.1" } group = "run.halo.app" sourceCompatibility = JavaVersion.VERSION_17 checkstyle { toolVersion = "9.3" showViolations = false ignoreFailures = false } repositories { mavenCentral() maven { url 'https://repo.spring.io/milestone' } } configurations { compileOnly { extendsFrom annotationProcessor } } springBoot { buildInfo() } bootJar { manifest { attributes "Implementation-Title": "Halo Application", "Implementation-Version": archiveVersion } } ext { commonsLang3 = "3.12.0" base62 = "0.1.3" pf4j = '3.9.0' javaDiffUtils = "4.12" guava = "31.1-jre" jsoup = '1.15.3' jsonPatch = "1.13" springDocOpenAPI = "2.0.2" lucene = "9.5.0" } 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-mail' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc' // Spring Security implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.security:spring-security-oauth2-jose' implementation 'org.springframework.security:spring-security-oauth2-resource-server' implementation "org.springdoc:springdoc-openapi-starter-webflux-ui:$springDocOpenAPI" implementation 'org.openapi4j:openapi-schema-validator:1.0.7' implementation "net.bytebuddy:byte-buddy" // Apache Lucene implementation "org.apache.lucene:lucene-core:$lucene" implementation "org.apache.lucene:lucene-queryparser:$lucene" implementation "org.apache.lucene:lucene-highlighter:$lucene" implementation "org.apache.lucene:lucene-backward-codecs:$lucene" implementation 'cn.shenyanchao.ik-analyzer:ik-analyzer:9.0.0' implementation "org.apache.commons:commons-lang3:$commonsLang3" implementation "io.seruco.encoding:base62:$base62" implementation "org.pf4j:pf4j:$pf4j" implementation "com.google.guava:guava:$guava" implementation "org.jsoup:jsoup:$jsoup" implementation "io.github.java-diff-utils:java-diff-utils:$javaDiffUtils" implementation "org.springframework.integration:spring-integration-core" implementation "com.github.java-json-tools:json-patch:$jsonPatch" implementation "org.thymeleaf.extras:thymeleaf-extras-springsecurity6" compileOnly 'org.projectlombok:lombok' testCompileOnly 'org.projectlombok:lombok' annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" annotationProcessor "org.springframework:spring-context-indexer:6.0.4" developmentOnly 'org.springframework.boot:spring-boot-devtools' // R2DBC // Currently, official doesn't support mssql and mariadb yet until drivers are available. // See https://github.com/spring-projects/spring-data-relational/commit/ee6c2c89b5c433748b22a79cf40dc8e01142caa3 // for more. runtimeOnly 'io.r2dbc:r2dbc-h2' runtimeOnly 'com.github.jasync-sql:jasync-r2dbc-mysql:2.1.23' runtimeOnly 'org.mariadb:r2dbc-mariadb:1.1.3' runtimeOnly 'org.postgresql:postgresql' runtimeOnly 'org.postgresql:r2dbc-postgresql' annotationProcessor 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' testImplementation 'io.projectreactor:reactor-test' } tasks.named('test') { useJUnitPlatform() } test { finalizedBy jacocoTestReport } jacocoTestReport { reports { xml.enabled true html.enabled false } } tasks.register('downloadPluginPresets', Download) { doFirst { delete 'src/main/resources/presets/plugins' } src([ 'https://github.com/halo-sigs/plugin-comment-widget/releases/download/v1.3.0/plugin-comment-widget-1.3.0.jar', 'https://github.com/halo-sigs/plugin-search-widget/releases/download/v1.0.0/plugin-search-widget-1.0.0.jar', 'https://github.com/halo-sigs/plugin-sitemap/releases/download/v1.0.1/plugin-sitemap-1.0.1.jar', 'https://github.com/halo-sigs/plugin-feed/releases/download/v1.1.0-beta.1/plugin-feed-1.1.0-beta.1.jar' ]) dest 'src/main/resources/presets/plugins' }