2022-03-17 12:43:03 -05:00
|
|
|
plugins {
|
|
|
|
id 'java'
|
|
|
|
id "com.google.protobuf" version "0.8.18"
|
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
mavenCentral()
|
|
|
|
}
|
|
|
|
|
|
|
|
ext {
|
|
|
|
protobuf_version = '3.19.3'
|
|
|
|
}
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
datahub
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
// compilation
|
|
|
|
implementation "com.google.protobuf:protobuf-java:$protobuf_version"
|
|
|
|
|
|
|
|
datahub files('libs/datahub-protobuf.jar')
|
|
|
|
|
|
|
|
// transitive deps
|
2022-04-04 19:52:09 -05:00
|
|
|
datahub 'io.acryl:datahub-client:0.8.+'
|
2022-03-17 12:43:03 -05:00
|
|
|
datahub "com.google.protobuf:protobuf-java:$protobuf_version"
|
|
|
|
datahub 'org.jgrapht:jgrapht-core:1.5.1'
|
|
|
|
datahub 'com.google.guava:guava:27.0.1-jre'
|
2022-03-30 12:50:13 -05:00
|
|
|
datahub 'com.google.code.gson:gson:2.8.6'
|
2022-03-17 12:43:03 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
sourceSets {
|
|
|
|
main {
|
|
|
|
proto {
|
|
|
|
srcDir 'schema'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
protobuf {
|
|
|
|
protoc {
|
|
|
|
artifact = "com.google.protobuf:protoc:$protobuf_version"
|
|
|
|
}
|
|
|
|
generateProtoTasks {
|
|
|
|
all().each { task ->
|
|
|
|
// If true, will generate a descriptor_set.desc file under
|
|
|
|
// $generatedFilesBaseDir/$sourceSet. Default is false.
|
|
|
|
// See --descriptor_set_out in protoc documentation about what it is.
|
|
|
|
task.generateDescriptorSet = true
|
|
|
|
|
|
|
|
// Allows to override the default for the descriptor set location
|
|
|
|
task.descriptorSetOptions.path =
|
|
|
|
"${projectDir}/build/descriptors/${task.sourceSet.name}.dsc"
|
|
|
|
|
|
|
|
// If true, the descriptor set will contain line number information
|
|
|
|
// and comments. Default is false.
|
|
|
|
task.descriptorSetOptions.includeSourceInfo = true
|
|
|
|
|
|
|
|
// If true, the descriptor set will contain all transitive imports and
|
|
|
|
// is therefore self-contained. Default is false.
|
|
|
|
task.descriptorSetOptions.includeImports = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
task publishSchema(dependsOn: build) {
|
|
|
|
description "Publishes protobuf schema in the `main` sourceSet to DataHub"
|
|
|
|
|
|
|
|
def javaLauncher = javaToolchains.launcherFor {
|
|
|
|
languageVersion = JavaLanguageVersion.of(11)
|
|
|
|
}
|
|
|
|
|
|
|
|
fileTree("schema").matching {
|
2022-04-04 19:52:09 -05:00
|
|
|
exclude "protobuf/meta/**"
|
2022-03-17 12:43:03 -05:00
|
|
|
}.each {f ->
|
|
|
|
doLast {
|
|
|
|
javaexec {
|
|
|
|
executable = javaLauncher.get().getExecutablePath().getAsFile().getAbsolutePath()
|
|
|
|
classpath = configurations.datahub
|
|
|
|
main = "datahub.protobuf.App"
|
|
|
|
args = ["${projectDir}/build/descriptors/main.dsc", file(f).getAbsoluteFile()]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|