import groovy.json.JsonSlurper buildscript { repositories { mavenLocal() mavenCentral() } } plugins { id 'application' id "org.springframework.boot" version "2.6.2" id 'io.spring.dependency-management' version "1.1.5" id 'groovy' id 'java' //id "ca.cutterslade.analyze" } description = "Java Demo Application for beapi-spring-boot-starter" apply plugin: 'application' apply plugin: 'groovy' sourceSets { main { java { srcDirs = [] } // no source dirs for the java compiler groovy { srcDirs = ["src/main/java", "src/main/groovy"] } // compile everything in src/ with groovy } } sourceCompatibility = "${sourceCompatibility}" def snapshotVersion = System.getenv('BEAPI_SNAPSHOT_VERSION') repositories { mavenLocal() mavenCentral() maven{ url 'https://s01.oss.sonatype.org/content/repositories/snapshots/'} } //bootJar { // enabled = true //} //jar { // enabled = true //} apply plugin: "io.spring.dependency-management" dependencies { //if(snapshotVersion) { // implementation "io.beapi:spring-boot-starter-beapi:${snapshotVersion}" //}else{ //implementation 'io.beapi:spring-boot-starter-beapi:0.8.61-SNAPSHOT' implementation 'io.beapi:spring-boot-starter-beapi:0.9.0-SNAPSHOT' //} // [CORE LIBS RATHER THAN STARTERS TO REDUCE JAR SIZE] implementation("jakarta.annotation:jakarta.annotation-api:1.3.5") implementation("jakarta.persistence:jakarta.persistence-api:2.2.3") implementation("jakarta.validation:jakarta.validation-api:2.0.2") implementation("org.apache.tomcat.embed:tomcat-embed-core:9.0.56") implementation("org.slf4j:slf4j-api:1.7.32") implementation("org.springframework.boot:spring-boot-autoconfigure:2.6.2") implementation("org.springframework.boot:spring-boot:2.6.2") implementation("org.springframework.data:spring-data-jpa:2.6.0") implementation("org.springframework.security:spring-security-config:5.8.3") implementation("org.springframework.security:spring-security-core:5.8.3") implementation("org.springframework.security:spring-security-crypto:5.8.3") implementation("org.springframework.security:spring-security-web:5.8.3") implementation("org.springframework:spring-beans:5.3.14") implementation("org.springframework:spring-context:5.3.14") implementation("org.springframework:spring-core:5.3.14") implementation("org.springframework:spring-jcl:5.3.14") implementation("org.springframework:spring-orm:5.3.14") implementation("org.springframework:spring-tx:5.3.14") implementation("org.springframework:spring-web:5.3.14") implementation "org.springframework.boot:spring-boot:${springBootVersion}" implementation('org.codehaus.gpars:gpars:1.2.1'){ exclude group:'org.multiverse', module:'multiverse-core' exclude group:'org.codehaus.groovy', module: 'groovy-all' } // [LOGGING] runtimeOnly 'org.slf4j:slf4j-api:1.7.15' // [TOKENS] implementation 'io.jsonwebtoken:jjwt:0.9.1' // [DATABASE] implementation('org.springframework.boot:spring-boot-starter-data-jpa') implementation 'com.zaxxer:HikariCP:3.2.0' runtimeOnly 'mysql:mysql-connector-java' //implementation group: 'com.google.guava', name: 'guava', version: '14.0' implementation 'com.google.guava:guava:26.0-jre' // [TEST] implementation 'commons-io:commons-io:2.8.0' //implementation 'org.codehaus.groovy:groovy' implementation 'org.apache.groovy:groovy:4.0.8' implementation 'org.apache.groovy:groovy-json:4.0.8' testImplementation('org.spockframework:spock-core:2.3-groovy-4.0') testImplementation('org.spockframework:spock-spring:2.3-groovy-4.0') testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } testImplementation "org.springframework.boot:spring-boot-starter-test:${springBootVersion}" implementation 'org.apache.httpcomponents:httpclient:4.5.13' implementation group: 'commons-codec', name: 'commons-codec', version: '1.9' } ext.javaMainClass = "demo.application.Application" // -Pargs=configType=${configType} application { mainClass = javaMainClass applicationDefaultJvmArgs = [project.property('configType.'+configTypeDefault)] if (project.hasProperty("args")) { List temp = project.args.split(',') temp.each(){ List l = args.split('=') if(l[0]=='configType' && project.property('configType.'+l[1])) { applicationDefaultJvmArgs = [project.property('configType.'+l[1])] } } } } springBoot { buildInfo() } test { useJUnitPlatform() } configurations { commonWebResources } jar { manifest { attributes 'Main-Class': javaMainClass } } /* * Start Block for CLI */ if (project.hasProperty("args")) { ext.cmdargs = project.getProperty("args") }else{ ext.cmdargs = "" } // --Pargs="domain=full.class.name" // --Pargs="controller=package.name, domain=full.class.name" task scaffold(type: JavaExec) { test { //exclude '**/*' } group = "Execution" description = "Run the main class with JavaExecTask" classpath = sourceSets.main.runtimeClasspath main = javaMainClass args cmdargs } /* * End Block for CLI */