client-java/build.gradle

168 lines
4.9 KiB
Groovy

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'idea'
apply plugin: "com.google.protobuf"
group = 'org.tikv'
version = '2.0-SNAPSHOT'
description = """TiSpark Project TiKV Java Client"""
sourceCompatibility = 1.8
targetCompatibility = 1.8
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
idea {
module {
// Marks the already(!) added srcDir as "generated"
generatedSourceDirs += file('target/generated-sources/main/java')
generatedSourceDirs += file('target/generated-sources/main/grpc-java')
}
}
buildscript {
repositories {
maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.7'
}
}
sourceSets {
main {
proto {
srcDir {'proto'}
include {'**/*.proto'}
}
java {
// include self written and generated code
srcDirs 'src/main/java', 'target/generated-sources/main/java' , 'target/generated-sources/main/grpc-java'
}
}
test {
java {
srcDirs 'src/test/java', 'target/generated-sources/main/java' , 'target/generated-sources/main/grpc-java'
}
}
// remove the test configuration - at least in your example you don't have a special test proto file
}
protobuf {
// Configure the protoc executable
protoc {
// Download from repositories
artifact = 'com.google.protobuf:protoc:3.1.0'
}
// Locate the codegen plugins
plugins {
// Locate a plugin with name 'grpc'. This step is optional.
// If you don't locate it, protoc will try to use "protoc-gen-grpc" from
// system search path.
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.4.0'
// or
// path = 'tools/protoc-gen-grpc-java'
}
}
generateProtoTasks.generatedFilesBaseDir = 'target/generated-sources'
generateProtoTasks {
// all() returns the collection of all protoc tasks
all().each { task ->
task.plugins {
grpc {
outputSubDir = 'grpc-java'
}
}
// Here you can configure the task
}
// In addition to all(), you may get the task collection by various
// criteria:
// (Java only) returns tasks for a sourceSet
ofSourceSet('main')
}
}
clean {
delete protobuf.generatedFilesBaseDir
delete project.buildDir
}
repositories {
maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
compile group: 'log4j', name: 'log4j', version:'1.2.17'
compile group: 'net.sf.trove4j', name: 'trove4j', version:'3.0.1'
compile group: 'com.sangupta', name: 'murmur', version:'1.0.0'
compile group: 'io.grpc', name: 'grpc-netty', version:'1.7.0'
compile group: 'io.grpc', name: 'grpc-protobuf', version:'1.7.0'
compile group: 'io.grpc', name: 'grpc-stub', version:'1.7.0'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version:'2.8.11'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version:'2.8.11.1'
compile(group: 'com.fasterxml.jackson.module', name: 'jackson-module-scala_2.11', version:'2.8.11') {
exclude(module: 'guava')
}
compile group: 'joda-time', name: 'joda-time', version:'2.9.9'
compile group: 'org.joda', name: 'joda-convert', version:'1.9.2'
testCompile group: 'io.grpc', name: 'grpc-testing', version:'1.7.0'
//remove unused hadoop dependencies
/*compile group: 'org.apache.logging.log4j', name: 'log4j-api', version:'2.8.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version:'2.8.1'
compile group: 'org.apache.spark', name: 'spark-core_2.11', version:'2.3.2'
compile group: 'org.apache.spark', name: 'spark-catalyst_2.11', version:'2.3.2'
compile group: 'org.apache.spark', name: 'spark-sql_2.11', version:'2.3.2'
compile group: 'org.apache.spark', name: 'spark-hive_2.11', version:'2.3.2'
compile group: 'org.apache.spark', name: 'spark-hive-thriftserver_2.11', version:'2.3.2'
compile group: 'org.apache.spark', name: 'spark-unsafe_2.11', version:'2.3.2'*/
compile group: 'org.apache.commons', name: 'commons-lang3', version:'3.5'
compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.16'
compile group: 'org.slf4j', name: 'slf4j-log4j12', version:'1.7.16'
compile group: 'org.slf4j', name: 'jul-to-slf4j', version:'1.7.16'
compile group: 'org.slf4j', name: 'jcl-over-slf4j', version:'1.7.16'
compile 'com.google.protobuf:protobuf-java:3.1.0'
}
task updateProtoModule(type: Exec) {
if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) {
commandLine 'cmd', './scripts/proto.sh'
} else {
commandLine 'sh', '-c', './scripts/proto.sh'
}
}
task copyResources(type: Copy) {
includeEmptyDirs = false
copy {
from "./kvproto/include/"
include "**/gogoproto/**"
into "proto"
}
copy {
from "./kvproto/proto/", "./raft-rs/proto/", "./tipb/proto"
into "proto"
}
}
//create a single Jar with all dependencies
task fatJar(type: Jar) {
manifest {
attributes 'Title': project.name,
'Version': version
}
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}
compileJava.dependsOn copyResources
copyResources.dependsOn updateProtoModule