java-tutorials/security-modules/cas/cas-server/gradle/springboot.gradle

139 lines
4.5 KiB
Groovy

apply plugin: "java"
sourceSets {
bootRunSources {
resources {
srcDirs new File("//etc/cas/templates/"), new File("${project.getProjectDir()}/src/main/resources/")
}
}
}
configurations {
bootRunConfig {
extendsFrom compileClasspath
exclude(group: "org.springframework.boot", module: "spring-boot-starter-logging")
exclude(group: "ch.qos.logback", module: "logback-core")
exclude(group: "ch.qos.logback", module: "logback-classic")
}
}
dependencies {
bootRunConfig "org.apereo.cas:cas-server-core"
bootRunConfig "org.apereo.cas:cas-server-core-logging"
bootRunConfig "org.apereo.cas:cas-server-core-web"
bootRunConfig "org.apereo.cas:cas-server-core-webflow"
bootRunConfig "org.apereo.cas:cas-server-core-cookie"
bootRunConfig "org.apereo.cas:cas-server-core-logout"
bootRunConfig "org.apereo.cas:cas-server-core-authentication"
bootRunConfig "org.apereo.cas:cas-server-core-validation"
bootRunConfig "org.apereo.cas:cas-server-core-audit"
bootRunConfig "org.apereo.cas:cas-server-core-tickets"
bootRunConfig "org.apereo.cas:cas-server-core-services"
bootRunConfig "org.apereo.cas:cas-server-core-util"
bootRunConfig "org.apereo.cas:cas-server-support-webconfig"
bootRunConfig "org.apereo.cas:cas-server-support-thymeleaf"
bootRunConfig "org.apereo.cas:cas-server-support-validation"
bootRunConfig "org.apereo.cas:cas-server-support-person-directory"
bootRunConfig "org.apereo.cas:cas-server-webapp-resources"
bootRunConfig "org.apereo.cas:cas-server-webapp-init"
bootRunConfig "org.apereo.cas:cas-server-webapp-tomcat"
bootRunConfig "org.apereo.cas:cas-server-webapp-init-tomcat"
bootRunConfig "org.springframework.cloud:spring-cloud-starter-bootstrap"
bootRunConfig "org.springframework.boot:spring-boot-devtools"
}
bootRun {
classpath = configurations.bootRunConfig + sourceSets.main.compileClasspath + sourceSets.main.runtimeClasspath
sourceResources sourceSets.bootRunSources
doFirst {
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("-Xrunjdwp:transport=dt_socket,address=5000,server=y,suspend=n")
jvmArgs = list
def appArgList = []
args = appArgList
}
springBoot {
buildInfo()
mainClass = "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"
}
archiveFileName = "cas.war"
archiveBaseName = "cas"
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}:${project.'cas.version'}@war"
provided = false
excludes = ["WEB-INF/lib/servlet-api-2*.jar"]
/*
excludes = ["WEB-INF/lib/somejar-1.0*"]
enableCompilation = true
includes = ["*.xyz"]
targetPath = "sub-path/bar"
skip = false
*/
}
}
}
bootBuildInfo.mustRunAfter(compileJava)