mirror of https://github.com/tikv/client-java.git
168 lines
4.9 KiB
Groovy
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
|