apply plugin: "org.springframework.boot" configurations { bootRunConfig.extendsFrom compileClasspath } dependencies { bootRunConfig "org.apereo.cas:cas-server-webapp-init:${casServerVersion}" bootRunConfig "org.apereo.cas:cas-server-webapp-tomcat:${casServerVersion}" bootRunConfig "org.springframework.boot:spring-boot-devtools:${project.springBootVersion}" } sourceSets { bootRunSources { resources { srcDirs new File("//etc/cas/templates/"), new File("${project.getProjectDir()}/src/main/resources/") } } } bootRun { classpath = configurations.bootRunConfig + sourceSets.main.compileClasspath + sourceSets.main.runtimeClasspath doFirst { sourceResources sourceSets.bootRunSources systemProperties = System.properties } def list = [] list.add("-XX:TieredStopAtLevel=1") list.add("-Xverify:none") list.add("--add-modules") list.add("java.se") list.add("--add-exports") list.add("java.base/jdk.internal.ref=ALL-UNNAMED") list.add("--add-opens") list.add("java.base/java.lang=ALL-UNNAMED") list.add("--add-opens") list.add("java.base/java.nio=ALL-UNNAMED") list.add("--add-opens") list.add("java.base/sun.nio.ch=ALL-UNNAMED") list.add("--add-opens") list.add("java.management/sun.management=ALL-UNNAMED") list.add("--add-opens") list.add("jdk.management/com.sun.management.internal=ALL-UNNAMED") list.add("-XX:+UnlockExperimentalVMOptions") list.add("-XX:+EnableJVMCI") list.add("-XX:+UseJVMCICompiler") list.add("-Xrunjdwp:transport=dt_socket,address=5000,server=y,suspend=n") jvmArgs = list def appArgList = [] args = appArgList } springBoot { buildInfo() mainClassName = "org.apereo.cas.web.CasWebApplication" } bootWar { def executable = project.hasProperty("executable") && Boolean.valueOf(project.getProperty("executable")) if (executable) { logger.info "Including launch script for executable WAR artifact" launchScript() } else { logger.info "WAR artifact is not marked as an executable" } archiveName "${casWebApplicationBinaryName}" baseName "cas" excludeDevtools = false entryCompression = ZipEntryCompression.STORED /* attachClasses = true classesClassifier = 'classes' archiveClasses = true */ overlays { /* https://docs.freefair.io/gradle-plugins/current/reference/#_io_freefair_war_overlay Note: The "excludes" property is only for files in the war dependency. If a jar is excluded from the war, it could be brought back into the final war as a dependency of non-war dependencies. Those should be excluded via normal gradle dependency exclusions. */ cas { from "org.apereo.cas:cas-server-webapp${project.appServer}:${casServerVersion}@war" provided = false /* excludes = ["WEB-INF/lib/somejar-1.0*"] enableCompilation = true includes = ["*.xyz"] targetPath = "sub-path/bar" skip = false */ } } }