OpenSearch/x-pack/plugin/sql/sql-cli/build.gradle

83 lines
2.7 KiB
Groovy

import org.elasticsearch.gradle.info.BuildParams
/*
* This project is named sql-cli because it is in the "org.elasticsearch.plugin"
* group and it'd be super confusing for it to just be called "cli" there.
* Also, the jar we ultimately want to ship is sql-cli-VERSION.jar which is
* exactly what gradle makes by default when the project is named sql-cli.
*/
apply plugin: 'elasticsearch.build'
apply plugin: 'com.github.johnrengelman.shadow'
/* We don't use the 'application' plugin because it builds a zip and tgz which
* we don't want. */
archivesBaseName = 'elasticsearch-sql-cli'
description = 'Command line interface to Elasticsearch that speaks SQL'
dependencies {
// select just the parts of JLine that are needed
compile "org.jline:jline-terminal:${jlineVersion}"
compile("org.jline:jline-terminal-jna:${jlineVersion}") {
exclude group: "net.java.dev.jna"
}
compile "org.jline:jline-reader:${jlineVersion}"
compile "org.jline:jline-style:${jlineVersion}"
compile xpackProject('plugin:sql:sql-client')
compile xpackProject('plugin:sql:sql-action')
compile project(":libs:elasticsearch-cli")
compile project(':libs:elasticsearch-x-content')
runtime "org.elasticsearch:jna:${versions.jna}"
testCompile project(":test:framework")
}
dependencyLicenses {
mapping from: /elasticsearch-cli.*/, to: 'elasticsearch'
mapping from: /elasticsearch-core.*/, to: 'elasticsearch'
mapping from: /jackson-.*/, to: 'jackson'
mapping from: /lucene-.*/, to: 'lucene'
mapping from: /sql-action.*/, to: 'elasticsearch'
mapping from: /sql-client.*/, to: 'elasticsearch'
mapping from: /jline-.*/, to: 'jline'
ignoreSha 'elasticsearch-cli'
ignoreSha 'elasticsearch-core'
ignoreSha 'elasticsearch'
ignoreSha 'sql-action'
ignoreSha 'sql-client'
}
shadowJar {
manifest {
attributes 'Main-Class': 'org.elasticsearch.xpack.sql.cli.Cli'
}
}
tasks.named('forbiddenApisMain').configure {
//sql does not depend on server, so only jdk signatures should be checked
replaceSignatureFiles 'jdk-signatures'
signaturesFiles += files('src/forbidden/cli-signatures.txt')
}
task runcli {
description = 'Run the CLI and connect to elasticsearch running on 9200'
dependsOn shadowJar
doLast {
List command = ["${BuildParams.runtimeJavaHome}/bin/java"]
if ('true'.equals(System.getProperty('debug', 'false'))) {
command += '-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000'
}
command += ['-jar', shadowJar.archivePath.absolutePath]
logger.info("running the cli with: ${command}")
new ProcessBuilder(command)
.redirectOutput(ProcessBuilder.Redirect.INHERIT)
.redirectInput(ProcessBuilder.Redirect.INHERIT)
.redirectError(ProcessBuilder.Redirect.INHERIT)
.start()
.waitFor()
}
}