68 lines
2.1 KiB
Groovy
68 lines
2.1 KiB
Groovy
buildscript {
|
|
repositories {
|
|
maven { url "https://repo.spring.io/plugins-release" }
|
|
}
|
|
dependencies {
|
|
classpath("org.gradle.api.plugins:gradle-tomcat-plugin:1.2.5")
|
|
}
|
|
}
|
|
|
|
apply plugin: 'tomcat'
|
|
|
|
dependencies {
|
|
def tomcatVersion = '7.0.54'
|
|
tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
|
|
"org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
|
|
"org.apache.tomcat.embed:tomcat-embed-websocket:${tomcatVersion}"
|
|
tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
|
|
exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
|
|
}
|
|
}
|
|
|
|
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]
|
|
}
|
|
}
|
|
|
|
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
|
|
} |