| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * License); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an AS IS BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| // See build_rules.gradle for documentation on default build tasks |
| // and properties that are enabled in addition to natures |
| // that can be applied to configure a project for certain common |
| // tasks. |
| |
| apply from: project(":").file("build_rules.gradle") |
| |
| // These versions are defined here because they represent |
| // a dependency version which should match across multiple |
| // Maven artifacts. |
| def google_cloud_bigdataoss_version = "1.4.5" |
| def bigtable_version = "1.0.0" |
| def bigtable_proto_version = "1.0.0-pre3" |
| def google_clients_version = "1.22.0" |
| def google_auth_version = "0.7.1" |
| def grpc_version = "1.2.0" |
| def protobuf_version = "3.2.0" |
| def guava_version = "20.0" |
| def netty_version = "4.1.8.Final" |
| def grpc_google_common_protos = "0.1.9" |
| def hamcrest_version = "1.3" |
| def hadoop_version = "2.7.3" |
| def jackson_version = "2.8.9" |
| def spark_version = "2.2.1" |
| def pubsub_grpc_version = "0.1.18" |
| def apex_core_version = "3.6.0" |
| def apex_malhar_version = "3.4.0" |
| def postgres_version = "9.4.1212.jre7" |
| |
| // A map of maps containing common libraries used per language. To use: |
| // dependencies { |
| // shadow library.java.slf4j_api |
| // } |
| ext.library = [ |
| java: [ |
| activemq_amqp: "org.apache.activemq:activemq-amqp:5.13.1", |
| activemq_broker: "org.apache.activemq:activemq-broker:5.13.1", |
| activemq_client: "org.apache.activemq:activemq-client:5.13.1", |
| activemq_jaas: "org.apache.activemq:activemq-jaas:5.13.1", |
| activemq_junit: "org.apache.activemq.tooling:activemq-junit:5.13.1", |
| activemq_kahadb_store: "org.apache.activemq:activemq-kahadb-store:5.13.1", |
| activemq_mqtt: "org.apache.activemq:activemq-mqtt:5.13.1", |
| apex_common: "org.apache.apex:apex-common:$apex_core_version", |
| apex_engine: "org.apache.apex:apex-engine:$apex_core_version", |
| args4j: "args4j:args4j:2.33", |
| avro: "org.apache.avro:avro:1.8.2", |
| bigdataoss_gcsio: "com.google.cloud.bigdataoss:gcsio:$google_cloud_bigdataoss_version", |
| bigdataoss_util: "com.google.cloud.bigdataoss:util:$google_cloud_bigdataoss_version", |
| bigtable_client_core: "com.google.cloud.bigtable:bigtable-client-core:$bigtable_version", |
| bigtable_protos: "com.google.cloud.bigtable:bigtable-protos:$bigtable_proto_version", |
| byte_buddy: "net.bytebuddy:byte-buddy:1.6.8", |
| commons_compress: "org.apache.commons:commons-compress:1.14", |
| commons_csv: "org.apache.commons:commons-csv:1.4", |
| commons_io_1x: "commons-io:commons-io:1.3.2", |
| commons_io_2x: "commons-io:commons-io:2.5", |
| commons_lang3: "org.apache.commons:commons-lang3:3.6", |
| commons_text: "org.apache.commons:commons-text:1.1", |
| datastore_v1_proto_client: "com.google.cloud.datastore:datastore-v1-proto-client:1.4.0", |
| datastore_v1_protos: "com.google.cloud.datastore:datastore-v1-protos:1.3.0", |
| error_prone_annotations: "com.google.errorprone:error_prone_annotations:2.0.15", |
| findbugs_annotations: "com.github.stephenc.findbugs:findbugs-annotations:1.3.9-1", |
| findbugs_jsr305: "com.google.code.findbugs:jsr305:3.0.1", |
| gax_grpc: "com.google.api:gax-grpc:0.20.0", |
| google_api_client: "com.google.api-client:google-api-client:$google_clients_version", |
| google_api_client_jackson2: "com.google.api-client:google-api-client-jackson2:$google_clients_version", |
| google_api_client_java6: "com.google.api-client:google-api-client-java6:$google_clients_version", |
| google_api_common: "com.google.api:api-common:1.0.0-rc2", |
| google_api_services_bigquery: "com.google.apis:google-api-services-bigquery:v2-rev355-$google_clients_version", |
| google_api_services_clouddebugger: "com.google.apis:google-api-services-clouddebugger:v2-rev8-$google_clients_version", |
| google_api_services_cloudresourcemanager: "com.google.apis:google-api-services-cloudresourcemanager:v1-rev6-$google_clients_version", |
| google_api_services_dataflow: "com.google.apis:google-api-services-dataflow:v1b3-rev221-$google_clients_version", |
| google_api_services_pubsub: "com.google.apis:google-api-services-pubsub:v1-rev10-$google_clients_version", |
| google_api_services_storage: "com.google.apis:google-api-services-storage:v1-rev71-$google_clients_version", |
| google_auth_library_credentials: "com.google.auth:google-auth-library-credentials:$google_auth_version", |
| google_auth_library_oauth2_http: "com.google.auth:google-auth-library-oauth2-http:$google_auth_version", |
| google_cloud_core: "com.google.cloud:google-cloud-core:1.0.2", |
| google_cloud_core_grpc: "com.google.cloud:google-cloud-core-grpc:$grpc_version", |
| google_cloud_dataflow_java_proto_library_all: "com.google.cloud.dataflow:google-cloud-dataflow-java-proto-library-all:0.5.160304", |
| google_cloud_spanner: "com.google.cloud:google-cloud-spanner:0.20.0-beta", |
| google_http_client: "com.google.http-client:google-http-client:$google_clients_version", |
| google_http_client_jackson: "com.google.http-client:google-http-client-jackson:$google_clients_version", |
| google_http_client_jackson2: "com.google.http-client:google-http-client-jackson2:$google_clients_version", |
| google_http_client_protobuf: "com.google.http-client:google-http-client-protobuf:$google_clients_version", |
| google_oauth_client: "com.google.oauth-client:google-oauth-client:$google_clients_version", |
| google_oauth_client_java6: "com.google.oauth-client:google-oauth-client-java6:$google_clients_version", |
| grpc_all: "io.grpc:grpc-all:$grpc_version", |
| grpc_auth: "io.grpc:grpc-auth:$grpc_version", |
| grpc_core: "io.grpc:grpc-core:$grpc_version", |
| grpc_google_cloud_pubsub_v1: "com.google.api.grpc:grpc-google-cloud-pubsub-v1:$pubsub_grpc_version", |
| grpc_protobuf: "io.grpc:grpc-protobuf:$grpc_version", |
| grpc_protobuf_lite: "io.grpc:grpc-protobuf-lite:$grpc_version", |
| grpc_netty: "io.grpc:grpc-netty:$grpc_version", |
| grpc_stub: "io.grpc:grpc-stub:$grpc_version", |
| guava: "com.google.guava:guava:$guava_version", |
| guava_testlib: "com.google.guava:guava-testlib:$guava_version", |
| hadoop_client: "org.apache.hadoop:hadoop-client:$hadoop_version", |
| hadoop_common: "org.apache.hadoop:hadoop-common:$hadoop_version", |
| hadoop_mapreduce_client_core: "org.apache.hadoop:hadoop-mapreduce-client-core:$hadoop_version", |
| hadoop_minicluster: "org.apache.hadoop:hadoop-minicluster:$hadoop_version", |
| hadoop_hdfs: "org.apache.hadoop:hadoop-hdfs:$hadoop_version", |
| hadoop_hdfs_tests: "org.apache.hadoop:hadoop-hdfs:$hadoop_version:tests", |
| hamcrest_core: "org.hamcrest:hamcrest-core:$hamcrest_version", |
| hamcrest_library: "org.hamcrest:hamcrest-library:$hamcrest_version", |
| jackson_annotations: "com.fasterxml.jackson.core:jackson-annotations:$jackson_version", |
| jackson_core: "com.fasterxml.jackson.core:jackson-core:$jackson_version", |
| jackson_databind: "com.fasterxml.jackson.core:jackson-databind:$jackson_version", |
| jackson_dataformat_cbor: "com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:$jackson_version", |
| jackson_dataformat_yaml: "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:$jackson_version", |
| jackson_module_scala: "com.fasterxml.jackson.module:jackson-module-scala_2.11:$jackson_version", |
| joda_time: "joda-time:joda-time:2.4", |
| junit: "junit:junit:4.12", |
| kafka_clients: "org.apache.kafka:kafka-clients:1.0.0", |
| malhar_library: "org.apache.apex:malhar-library:$apex_malhar_version", |
| mockito_core: "org.mockito:mockito-core:1.9.5", |
| netty_handler: "io.netty:netty-handler:$netty_version", |
| netty_tcnative_boringssl_static: "io.netty:netty-tcnative-boringssl-static:1.1.33.Fork26", |
| netty_transport_native_epoll: "io.netty:netty-transport-native-epoll:$netty_version", |
| postgres: "org.postgresql:postgresql:$postgres_version", |
| protobuf_java: "com.google.protobuf:protobuf-java:$protobuf_version", |
| protobuf_java_util: "com.google.protobuf:protobuf-java-util:$protobuf_version", |
| proto_google_cloud_pubsub_v1: "com.google.api.grpc:proto-google-cloud-pubsub-v1:$pubsub_grpc_version", |
| proto_google_cloud_spanner_admin_database_v1: "com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:$grpc_google_common_protos", |
| proto_google_common_protos: "com.google.api.grpc:proto-google-common-protos:$grpc_google_common_protos", |
| slf4j_api: "org.slf4j:slf4j-api:1.7.25", |
| slf4j_jdk14: "org.slf4j:slf4j-jdk14:1.7.25", |
| slf4j_log4j12: "org.slf4j:slf4j-log4j12:1.7.25", |
| snappy_java: "org.xerial.snappy:snappy-java:1.1.4", |
| spark_core: "org.apache.spark:spark-core_2.11:$spark_version", |
| spark_network_common: "org.apache.spark:spark-network-common_2.11:$spark_version", |
| spark_streaming: "org.apache.spark:spark-streaming_2.11:$spark_version", |
| stax2_api: "org.codehaus.woodstox:stax2-api:3.1.4", |
| woodstox_core_asl: "org.codehaus.woodstox:woodstox-core-asl:4.4.1", |
| ], |
| ] |
| |
| // Define the set of repositories and dependencies required to |
| // fetch and enable plugins. |
| buildscript { |
| repositories { |
| maven { url offlineRepositoryRoot } |
| |
| // To run gradle in offline mode, one must first invoke |
| // 'updateOfflineRepository' to create an offline repo |
| // inside the root project directory. See the application |
| // of the offline repo plugin within build_rules.gradle |
| // for further details. |
| if (gradle.startParameter.isOffline()) { |
| return |
| } |
| |
| mavenLocal() |
| mavenCentral() |
| jcenter() |
| maven { url "https://plugins.gradle.org/m2/" } |
| maven { url "http://repo.spring.io/plugins-release" } |
| } |
| dependencies { |
| classpath "net.ltgt.gradle:gradle-apt-plugin:0.12" // Enable a Java annotation processor |
| classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.1" // Enable proto code generation |
| classpath "io.spring.gradle:propdeps-plugin:0.0.9.RELEASE" // Enable provided and optional configurations |
| classpath "gradle.plugin.org.nosphere.apache:creadur-rat-gradle:0.3.1" // Enable Apache license enforcement |
| classpath "com.commercehub.gradle.plugin:gradle-avro-plugin:0.11.0" // Enable Avro code generation |
| classpath "com.diffplug.spotless:spotless-plugin-gradle:3.6.0" // Enable a code formatting plugin |
| classpath "gradle.plugin.com.github.blindpirate:gogradle:0.7.0" // Enable Go code compilation |
| classpath "gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.13.0" // Enable building Docker containers |
| classpath "cz.malohlava:visteg:1.0.3" // Enable generating Gradle task dependencies as ".dot" files |
| classpath "com.github.jengelman.gradle.plugins:shadow:2.0.1" // Enable shading Java dependencies |
| classpath "ca.coglinc:javacc-gradle-plugin:2.4.0" // Enable the JavaCC parser generator |
| classpath "gradle.plugin.io.pry.gradle.offline_dependencies:gradle-offline-dependencies-plugin:0.3" // Enable creating an offline repository |
| } |
| } |
| |
| /*************************************************************************************************/ |
| // Configure the root project |
| |
| apply plugin: "base" |
| |
| // Apply one top level rat plugin to perform any required license enforcement analysis |
| apply plugin: "org.nosphere.apache.rat" |
| rat { |
| plainOutput = true |
| xmlOutput = false |
| htmlOutput = false |
| failOnError = true |
| excludes = [ |
| // Ignore any offline repositories the user may have created. |
| "**/${offlineRepositoryRoot}/**/*", |
| |
| // Exclude files generated by the Gradle build process |
| "**/.gradle/**/*", |
| "**/.gogradle/**/*", |
| "**/build/**/*", |
| "**/vendor/**/*", |
| "**/.gradletasknamecache", |
| |
| // .gitignore: Ignore files generated by the Maven build process |
| "**/target/**/*", |
| "**/bin/**/*", |
| "**/dependency-reduced-pom.xml", |
| |
| // .gitignore: Ignore files generated by the Python build process |
| "**/*.pyc", |
| "**/*.pyo", |
| "**/*.pyd", |
| "**/*.egg-info/**/*", |
| "**/.eggs/**/*", |
| "**/nose-*.egg/**/*", |
| "**/.tox/**/*", |
| "**/dist/**/*", |
| "**/distribute-*/**/*", |
| "**/env/**/*", |
| "sdks/python/**/*.c", |
| "sdks/python/**/*.so", |
| "sdks/python/**/*.egg", |
| "sdks/python/LICENSE", |
| "sdks/python/NOTICE", |
| "sdks/python/README.md", |
| "sdks/python/apache_beam/portability/api/*pb2*.*", |
| |
| // .gitignore: Ignore IntelliJ files. |
| "**/.idea/**/*", |
| "**/*.iml", |
| "**/*.ipr", |
| "**/*.iws", |
| |
| // .gitignore: Ignore Eclipse files. |
| "**/.classpath", |
| "**/.project", |
| "**/.factorypath", |
| "**/.checkstyle", |
| "**/.fbExcludeFilterFile", |
| "**/.apt_generated/**/*", |
| "**/.settings/**/*", |
| |
| // .gitignore: Ignore Visual Studio Code files. |
| "**/.vscode/**/*", |
| |
| // .gitignore: Hotspot VM leaves this log in a non-target directory when java crashes |
| "**/hs_err_pid*.log", |
| |
| // .gitignore: Ignore files that end with "~", since they |
| // are most likely auto-save files produced by a text editor. |
| "**/*~", |
| |
| // .gitignore: Ignore MacOSX files. |
| "**/.DS_Store/**/*", |
| |
| // Ignore files we track but do not distribute |
| ".github/**/*", |
| |
| "**/package-list", |
| "**/user.avsc", |
| "**/test/resources/**/*.txt", |
| "**/test/**/.placeholder", |
| |
| // Default eclipse excludes neglect subprojects |
| |
| // Proto/grpc generated wrappers |
| "**/apache_beam/portability/api/*_pb2*.py", |
| "**/go/pkg/beam/model/**/*.pb.go", |
| |
| // VCF test files |
| "**/apache_beam/testing/data/vcf/*", |
| ] |
| } |
| check.dependsOn rat |
| |
| // Define a root Java PreCommit task simplifying what is needed |
| // to be specified on the commandline when executing locally. |
| def javaPreCommitRoots = [ |
| ":sdks:java:core", |
| ":runners:direct-java", |
| ":sdks:java:fn-execution", |
| ] |
| task javaPreCommit() { |
| for (String javaPreCommitRoot : javaPreCommitRoots) { |
| dependsOn javaPreCommitRoot + ":buildNeeded" |
| dependsOn javaPreCommitRoot + ":buildDependents" |
| } |
| dependsOn ":examples:java:preCommit" |
| } |