This plugin provides the capability of running and populating an embedded H2 database as part of a gradle build, perfect for integration testing with embedded web containers.
To use the h2 plugin, include your in buildscript:
apply plugin: 'h2'
The plugin jars need to be defined in the classpath of your buildscript. You can either get the plugin jar and pom from the github download section or upload it to your own repository. Here's how you'd include it if resolving against github directly.
buildscript {
repositories {
add(new org.apache.ivy.plugins.resolver.URLResolver()) {
name = 'GitHub'
addArtifactPattern 'http://cloud.github.com/downloads/[organisation]/[module]/[module]-[revision].[ext]'
}
}
dependencies {
classpath 'jamescarr:h2-gradle-plugin:0.8.0'
classpath 'com.h2database:h2:1.3.164' // choose your own version
}
}
h2 {
tcpPort = 9092
webPort = 8082
example {
scripts = [
'src/test/resources/cars.sql'
, 'src/test/resources/init-data.sql'
]
}
}
the inner closure databaseName will create a database with that name and populate it with scripts defined by the script variable. You can have multiple database closures that will create multiple databases.
apply plugin: 'h2'
h2 {
tcpPort = 9092
webPort = 8082
one {
scripts = [
'src/test/resources/cars.sql'
, 'src/test/resources/init-data.sql'
]
}
two {
scripts = [
'src/test/resources/boats.sql'
, 'src/test/resources/init-data.sql'
]
}
}
jettyRun.doFirst {
h2start.execute()
}
tomcatRun.doFirst {
h2start.execute()
}