buildscript { repositories { mavenCentral() jcenter() } dependencies { classpath 'com.github.ben-manes:gradle-versions-plugin:0.20.0' classpath 'io.github.swagger2markup:swagger2markup-gradle-plugin:1.3.3' } } plugins { id 'org.springframework.boot' version '2.1.1.RELEASE' apply false id "com.moowork.node" version "1.2.0" apply false id("org.asciidoctor.convert") version "1.5.9.2" apply false } repositories { mavenCentral() jcenter() maven { url "https://jitpack.io" } maven { url "https://repository.apache.org/content/repositories/snapshots/" } maven { url "https://oss.sonatype.org/content/repositories/snapshots" } } apply plugin: 'io.spring.dependency-management' dependencyManagement { imports { mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES } applyMavenExclusions = false } apply plugin: 'com.github.ben-manes.versions' dependencyUpdates.resolutionStrategy = { componentSelection { rules -> rules.all { ComponentSelection selection -> boolean rejected = ['alpha', 'beta', 'rc', 'cr', 'm', 'pr', 'b'].any { qualifier -> selection.candidate.version ==~ /(?i).*[.-]${qualifier}[.\d-]*/ } if (rejected) { selection.reject('Release candidate') } } } } apply plugin: 'java' apply plugin: 'org.springframework.boot' apply plugin: 'com.moowork.node' apply plugin: 'io.github.swagger2markup' apply plugin: 'org.asciidoctor.convert' task compileFrontend(type: YarnTask) { inputs.files(fileTree('node_modules')) inputs.files(fileTree('src')) inputs.file('package.json') inputs.file('webpack.config.js') outputs.dir('src/main/resources/static') args = ['run', 'compile'] } ext { swaggerOutputDir = file("${buildDir}/swagger") docsOutputDir = file("${buildDir}/docs") } test { systemProperty 'io.springfox.staticdocs.outputDir', swaggerOutputDir outputs.dir swaggerOutputDir } 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 } configurations { compile.exclude module: 'spring-boot-starter-tomcat' } 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") compile ("org.springframework.boot:spring-boot-starter-undertow") compile ("org.springframework.boot:spring-boot-starter-websocket") compile ("org.springframework.boot:spring-boot-starter-json") compile ('org.springframework.boot:spring-boot-devtools') compile "org.apache.commons:commons-lang3:3.8.1" compile "org.apache.commons:commons-collections4:4.2" compile 'org.apache.commons:commons-text:1.6' compile "commons-codec:commons-codec:1.11" compile "commons-io:commons-io:2.6" compile 'com.google.code.findbugs:jsr305:3.0.2' compile 'org.ocpsoft.prettytime:prettytime:4.0.2.Final' compile 'org.imgscalr:imgscalr-lib:4.2' compile "org.apache.commons:commons-imaging:1.0-SNAPSHOT" runtime "commons-fileupload:commons-fileupload:1.3.3" compile 'com.github.ben-manes.caffeine:caffeine:2.6.2' compile "javax.inject:javax.inject:1" compile "javax.xml.bind:jaxb-api:2.3.1" compile 'org.glassfish.jaxb:jaxb-runtime:2.3.1' compileOnly 'io.springfox:springfox-core:2.9.2' compile 'org.apache.commons:commons-email:1.5' compile 'com.github.scribejava:scribejava-apis:6.2.0' compile 'com.github.vitalyster:java-telegram-bot-api:file_api-SNAPSHOT' compile 'com.twelvemonkeys.imageio:imageio-jpeg:3.4.1' compile 'org.imgscalr:imgscalr-lib:4.2' compile 'org.twitter4j:twitter4j-core:4.0.7' compile 'rocks.xmpp:xmpp-core-client:0.8.1-SNAPSHOT' compile 'rocks.xmpp:xmpp-extensions-client:0.8.1-SNAPSHOT' compile "javax.inject:javax.inject:1" compile 'com.rometools:rome:1.12.0' compile 'com.rometools:rome-modules:1.12.0' compile 'org.flywaydb:flyway-core:5.2.4' runtime 'org.mariadb.jdbc:mariadb-java-client:2.3.0' runtime 'net.java.dev.jna:jna:5.2.0' runtime 'net.java.dev.jna:jna-platform:5.2.0' runtime 'com.h2database:h2:1.4.196' runtime "commons-fileupload:commons-fileupload:1.3.3" compile 'com.github.ooxi:serialized-php-parser:0.5.0' compile 'io.pebbletemplates:pebble-spring5:3.0.6' compile 'com.atlassian.commonmark:commonmark:0.12.1' compile 'com.atlassian.commonmark:commonmark-ext-autolink:0.12.1' compile 'org.tomitribe:tomitribe-http-signatures:1.1' compile 'com.squareup.okhttp3:okhttp:3.12.1' compile 'com.google.api-client:google-api-client:1.27.0' testCompile("org.springframework.boot:spring-boot-starter-test") testCompile('net.sourceforge.htmlunit:htmlunit:2.33') testCompile('org.springframework.security:spring-security-test') testCompile 'io.springfox:springfox-swagger2:2.9.2' } bootJar { launchScript() } bootRun { sourceResources sourceSets.main } bootRun.dependsOn ':generateDebugKey' compileFrontend.dependsOn 'yarn' processResources.dependsOn 'compileFrontend' class GenKey extends DefaultTask { @OutputFile String keystore @TaskAction def generate() { ant.genkey(alias: "1", keystore: keystore.toString(), storetype: "PKCS12", keyalg: "RSA", storepass: "secret", dname: "CN=localhost", keysize: 2048) } } task generateDebugKey(type: GenKey) { keystore = "${projectDir}/juick.p12" }