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 the following in your buildscript:
apply plugin: 'h2'
buildscript {
repositories {
add(new org.apache.ivy.plugins.resolver.URLResolver()) {
name = 'GitHub'
addArtifactPattern 'http://cloud.github.com/downloads/[organisation]/[module]/[module]-[revision].[ext]'
}
mavenCentral() // or alternatively your own maven resolver
}
dependencies {
classpath 'jamescarr:h2-gradle-plugin:0.8.2'
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()
}
More to come.