64 lines
1.7 KiB
Groovy
64 lines
1.7 KiB
Groovy
buildscript {
|
|
repositories {
|
|
maven { url "https://repo.spring.io/plugins-release" }
|
|
}
|
|
dependencies {
|
|
classpath("org.gradle.api.plugins:gradle-tomcat-plugin:1.2.3")
|
|
}
|
|
}
|
|
|
|
apply plugin: 'war'
|
|
apply plugin: 'tomcat'
|
|
|
|
[tomcatRun,tomcatRunWar]*.contextPath = '/'
|
|
|
|
|
|
task integrationTomcatRun(type: org.gradle.api.plugins.tomcat.tasks.TomcatRun) {
|
|
onlyIf { !sourceSets.integrationTest.allSource.empty }
|
|
buildscriptClasspath = tomcatRun.buildscriptClasspath
|
|
contextPath = tomcatRun.contextPath
|
|
daemon = true
|
|
tomcatClasspath = tomcatRun.tomcatClasspath
|
|
webAppClasspath = tomcatRun.webAppClasspath
|
|
webAppSourceDirectory = tomcatRun.webAppSourceDirectory
|
|
doFirst {
|
|
def mainOutputDir = project.sourceSets.main.output.classesDir
|
|
if(mainOutputDir) {
|
|
classesDirectory = mainOutputDir
|
|
}
|
|
// delay reserving ports to ensure they are still available
|
|
def ports = reservePorts(3)
|
|
httpPort = ports[0]
|
|
ajpPort = ports[1]
|
|
stopPort = ports[2]
|
|
|
|
System.setProperty('spring.session.redis.namespace',project.name)
|
|
}
|
|
}
|
|
|
|
task integrationTomcatStop(type: org.gradle.api.plugins.tomcat.tasks.TomcatStop) {
|
|
onlyIf { !sourceSets.integrationTest.allSource.empty }
|
|
doFirst {
|
|
stopPort = integrationTomcatRun.stopPort
|
|
}
|
|
}
|
|
|
|
integrationTest {
|
|
dependsOn integrationTomcatRun
|
|
doFirst {
|
|
def host = 'localhost:' + integrationTomcatRun.httpPort
|
|
systemProperties['geb.build.baseUrl'] = 'http://'+host+'/' + integrationTomcatRun.contextPath
|
|
systemProperties['geb.build.reportsDir'] = 'build/geb-reports'
|
|
}
|
|
finalizedBy integrationTomcatStop
|
|
}
|
|
|
|
def reservePorts(int count) {
|
|
def sockets = []
|
|
for(int i in 1..count) {
|
|
sockets << new ServerSocket(0)
|
|
}
|
|
def result = sockets*.localPort
|
|
sockets*.close()
|
|
result
|
|
} |