OpenSearch/sql-clients/build.gradle

201 lines
5.2 KiB
Groovy

description = 'Elasticsearch SQL Clients'
def revHash = 123123123123123
import org.gradle.plugins.ide.eclipse.model.*;
def template() { { project ->
apply plugin: 'elasticsearch.build'
apply plugin: "java"
apply plugin: 'eclipse'
sourceSets.test.resources.srcDirs = ["src/test/resources", "src/test/java"]
// Massaging Eclipse
eclipse {
classpath.file {
whenMerged { cp ->
def con = entries.find { e ->
e.kind == "con" && e.toString().contains("org.eclipse.jdt.launching.JRE_CONTAINER")
}
((AbstractClasspathEntry) con).accessRules.add(new AccessRule("accessible", "com/sun/net/httpserver/*"))
entries.unique { a, b ->
return a.path.compareTo(b.path)
}
entries.removeAll { it.path.endsWith('.pom') }
}
}
jdt {
javaRuntimeName = "JavaSE-1.8"
// specify again the compatibility to override the default JavaRE settings
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
}
dependencies {
testCompile("junit:junit:${versions.junit}") {
exclude group:'org.hamcrest', module:'hamcrest-core'
}
testCompile "org.hamcrest:hamcrest-all:${versions.hamcrest}"
}
}
}
// Shared HTTP Client
project(":net-client") {
apply plugin: 'elasticsearch.build'
apply plugin: "java"
// add some utilities for doing proto testing as this project is common to all protos
sourceSets {
itest {}
}
dependencies {
itestCompile "org.elasticsearch.client:transport:${version}"
}
}
// JDBC
project(":jdbc-proto") {
apply plugin: 'elasticsearch.build'
apply plugin: "java"
dependencies {
compile project(":net-client")
}
}
project(":jdbc") {
apply plugin: 'elasticsearch.build'
apply plugin: "java"
def generatedResources = "$buildDir/generated-resources/main"
sourceSets {
main {
output.dir(generatedResources, builtBy: "generateGitHash")
}
}
task generateGitHash {
doLast {
Properties props = new Properties()
props.put("version", version)
props.put("hash", revHash)
props.put("version.major", jdbcMajorVer)
props.put("version.minor", jdbcMinorVer)
File output = new File(generatedResources, "jdbc-build.properties")
new File(generatedResources).mkdirs()
output.createNewFile()
props.store(output.newWriter(), null)
}
}
sourceSets {
itest {}
}
dependencies {
compile project(":net-client")
compile project(":jdbc-proto")
itestCompile project(":plugins")
itestCompile configurations.compile
itestCompile configurations.runtime
itestCompile configurations.testCompile
itestRuntime configurations.testRuntime
itestRuntime "com.h2database:h2:1.4.194"
itestRuntime "net.sourceforge.csvjdbc:csvjdbc:1.0.31"
}
eclipse.classpath {
plusConfigurations << configurations.itestRuntime
}
jar {
from(zipTree(project(":net-client").jar.archivePath))
from(zipTree(project(":jdbc-proto").jar.archivePath))
}
task integrationTest(type: Test) {
group 'Verification'
description 'Runs the integration tests.'
testClassesDir = sourceSets.itest.output.classesDir
classpath = sourceSets.itest.runtimeClasspath
excludes = ["**/Abstract*.class"]
mustRunAfter tasks.test
}
}
// CLI
project(":cli-proto") {
apply plugin: 'elasticsearch.build'
apply plugin: "java"
dependencies {
compile project(":net-client")
}
}
project(":cli") {
apply plugin: 'elasticsearch.build'
apply plugin: "java"
apply plugin: 'application'
sourceSets {
itest {}
}
dependencies {
compile "org.jline:jline:3.3.0"
compile project(":net-client")
compile project(":cli-proto")
itestCompile project(":plugins")
itestCompile "org.elasticsearch.client:transport:$version"
itestCompile configurations.compile
itestCompile configurations.runtime
itestCompile configurations.testCompile
itestRuntime configurations.testRuntime
}
eclipse.classpath {
plusConfigurations << configurations.itestRuntime
}
task integrationTest(type: Test) {
group 'Verification'
description 'Runs the integration tests.'
testClassesDir = sourceSets.itest.output.classesDir
classpath = sourceSets.itest.runtimeClasspath
excludes = ["**/Abstract*.class"]
mustRunAfter tasks.test
}
jar {
from(zipTree(project(":net-client").jar.archivePath))
from(zipTree(project(":cli-proto").jar.archivePath))
}
mainClassName = "org.elasticsearch.sql.console.SqlConsole"
run {
classpath = sourceSets.test.runtimeClasspath
}
}
defaultTasks 'build'