import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform buildscript { repositories { mavenCentral() } dependencies { classpath 'io.github.swagger2markup:swagger2markup-gradle-plugin:1.3.3' } } plugins { id 'org.springframework.boot' version '2.4.2' apply false id 'org.asciidoctor.convert' version '2.4.0' } repositories { mavenCentral() google() } apply plugin: 'io.spring.dependency-management' dependencyManagement { imports { mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES } applyMavenExclusions = false } apply plugin: 'java' apply plugin: 'org.springframework.boot' apply plugin: 'io.github.swagger2markup' task npmInstall(type: Exec) { inputs.file('package-lock.json') outputs.file('package-lock.json') if (DefaultNativePlatform.getCurrentOperatingSystem().isWindows()) { commandLine 'cmd', '/c', 'npm', 'ci' } else { commandLine 'npm', 'ci' } } task npmCompile(type: Exec) { inputs.files(fileTree('node_modules')) inputs.files(fileTree('src')) inputs.file('webpack.config.js') outputs.dir('src/main/resources/static') if (DefaultNativePlatform.getCurrentOperatingSystem().isWindows()) { commandLine 'cmd', '/c', 'npm', 'run', 'compile' } else { commandLine 'npm', 'run', 'compile' } } ext { swaggerOutputDir = file("${buildDir}/swagger") docsOutputDir = file("${buildDir}/docs") } test { systemProperty 'io.springfox.staticdocs.outputDir', swaggerOutputDir outputs.dir swaggerOutputDir systemProperty 'spring.profiles.active', "${springProfile}" useJUnitPlatform() } convertSwagger2markup { dependsOn test swaggerInput "${swaggerOutputDir}/swagger.json" outputDir swaggerOutputDir config = [ 'swagger2markup.markupLanguage': 'ASCIIDOC', 'swagger2markup.pathsGroupedBy': 'TAGS' ] } task asciidocIndex(type: Copy) { from 'src/docs' into swaggerOutputDir include '*.adoc' } asciidoctor { dependsOn convertSwagger2markup dependsOn asciidocIndex sourceDir = swaggerOutputDir sources { include 'index.adoc', 'overview.adoc', 'definitions.adoc', 'paths.adoc' } attributes = [ doctype : 'book', toc : 'left', toclevels : '3', numbered : '', sectlinks : '', sectanchors: '', hardbreaks : '', src : swaggerOutputDir, generated : docsOutputDir ] outputDir = docsOutputDir } dependencies { compile ('org.springframework.boot:spring-boot-starter-cache') compile ('org.springframework.boot:spring-boot-starter-security') compile ('org.springframework.boot:spring-boot-starter-jdbc') compile ("org.springframework.boot:spring-boot-starter-security") compile ("org.springframework.boot:spring-boot-starter-web") { exclude module: "spring-boot-starter-tomcat" } compile ("org.springframework.boot:spring-boot-starter-undertow") compile ("org.springframework.boot:spring-boot-starter-json") developmentOnly 'org.springframework.boot:spring-boot-devtools' runtime ("org.springframework.boot:spring-boot-properties-migrator") compile 'org.flywaydb:flyway-core' compile 'com.github.ben-manes.caffeine:caffeine' compile 'javax.validation:validation-api' compile 'org.apache.commons:commons-lang3' compile 'commons-codec:commons-codec' compile 'javax.xml.bind:jaxb-api' runtime 'org.glassfish.jaxb:jaxb-runtime' compile "javax.inject:javax.inject:1" compile 'com.google.code.findbugs:jsr305:3.0.2' compile "org.apache.commons:commons-collections4:4.4" compile 'org.apache.commons:commons-email:1.5' compile 'org.apache.commons:commons-text:1.9' compile "org.apache.commons:commons-imaging:1.0-alpha2" compile "commons-io:commons-io:2.8.0" compile 'org.ocpsoft.prettytime:prettytime:5.0.0.Final' compile 'com.twelvemonkeys.imageio:imageio-jpeg:3.6.2' compile 'org.imgscalr:imgscalr-lib:4.2' implementation "org.springdoc:springdoc-openapi-webmvc-core:1.5.3" compile 'org.apache.commons:commons-email:1.5' compile 'com.github.scribejava:scribejava-apis:7.1.1' compile 'com.github.pengrad:java-telegram-bot-api:4.9.0' compile 'org.imgscalr:imgscalr-lib:4.2' compile 'org.twitter4j:twitter4j-core:4.0.7' compile 'rocks.xmpp:xmpp-core-client:0.8.2' compile 'rocks.xmpp:xmpp-extensions-client:0.8.2' compile 'com.rometools:rome:1.15.0' compile 'com.rometools:rome-modules:1.15.0' runtime 'org.mariadb.jdbc:mariadb-java-client' runtime 'net.java.dev.jna:jna:5.6.0' runtime 'net.java.dev.jna:jna-platform:5.6.0' runtime 'com.h2database:h2' compile 'io.pebbletemplates:pebble-spring5:3.1.4' compile 'org.commonmark:commonmark:0.17.1' compile 'org.commonmark:commonmark-ext-autolink:0.17.0' compile 'org.tomitribe:tomitribe-http-signatures:1.7' compile 'com.google.api-client:google-api-client:1.31.1' compile "com.kotcrab.remark:remark:1.2.0" compile 'io.jsonwebtoken:jjwt-api:0.11.2' runtime 'io.jsonwebtoken:jjwt-jackson:0.11.2' runtime 'io.jsonwebtoken:jjwt-impl:0.11.2' compile 'com.nimbusds:nimbus-jose-jwt' testCompile("org.springframework.boot:spring-boot-starter-test") testCompile 'net.sourceforge.htmlunit:htmlunit', { exclude group: 'xml-apis', module:'xml-apis' } testCompile('org.springframework.security:spring-security-test') testCompile("ch.vorburger.mariaDB4j:mariaDB4j:2.4.0") testCompile 'org.bouncycastle:bcpkix-jdk15on:1.68' } bootJar { launchScript() } bootRun { sourceResources sourceSets.main } npmCompile.dependsOn 'npmInstall' processResources.dependsOn 'npmCompile' sourceCompatibility = JavaVersion.VERSION_15 targetCompatibility = JavaVersion.VERSION_15