GithubHelp home page GithubHelp logo

h2-gradle-plugin's Introduction

Gradle H2 Plugin

H2 Logo

Build Status

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.

Usage

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
    }
}

Defining h2 configuration and database named 'example'

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'
		]
	}
}

Using with jettyRun

jettyRun.doFirst {
  h2start.execute()
}

Using with tomcatRun

tomcatRun.doFirst {
  h2start.execute()
}

h2-gradle-plugin's People

Contributors

james-carr avatar jamescarr avatar jamiborland avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.