[ 
https://issues.apache.org/jira/browse/BEAM-3249?focusedWorklogId=81689&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-81689
 ]

ASF GitHub Bot logged work on BEAM-3249:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 18/Mar/18 21:02
            Start Date: 18/Mar/18 21:02
    Worklog Time Spent: 10m 
      Work Description: lukecwik closed pull request #4812:  [BEAM-3249] 
Publish java artifacts using gradle
URL: https://github.com/apache/beam/pull/4812
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/build.gradle b/build.gradle
index 69502ab77c0..6ffeb57c69c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -150,6 +150,14 @@ ext.library = [
     stax2_api: "org.codehaus.woodstox:stax2-api:3.1.4",
     woodstox_core_asl: "org.codehaus.woodstox:woodstox-core-asl:4.4.1",
   ],
+  // For generating pom.xml from archetypes.
+  maven: [
+    maven_compiler_plugin: "maven-plugins:maven-compiler-plugin:3.7.0",
+    maven_exec_plugin: "maven-plugins:maven-exec-plugin:1.6.0",
+    maven_jar_plugin: "maven-plugins:maven-jar-plugin:3.0.2",
+    maven_shade_plugin: "maven-plugins:maven-shade-plugin:3.1.0",
+    maven_surefire_plugin: "maven-plugins:maven-surefire-plugin:2.20.1",
+  ],
 ]
 
 // Define the set of repositories and dependencies required to
diff --git a/build_rules.gradle b/build_rules.gradle
index 7d3cc19da25..4d0e7a026c1 100644
--- a/build_rules.gradle
+++ b/build_rules.gradle
@@ -184,6 +184,15 @@ ext.applyJavaNature = {
   apply plugin: "maven-publish"
   apply plugin: "java"
 
+  publishing {
+    repositories {
+      maven {
+        url project.properties["distMgmtSnapshotsUrl"] ?: 
"https://repository.apache.org/content/repositories/snapshots";
+      }
+    }
+  }
+
+
   // Configure the Java compiler source language and target compatibility 
levels. Also ensure that
   // we configure the Java compiler to use UTF-8.
   sourceCompatibility = configuration.javaVersion
@@ -325,6 +334,19 @@ ext.applyJavaNature = {
     artifacts.archives shadowJar
 
     if (configuration.artifactId) {
+      task sourcesJar(type: Jar) {
+        from sourceSets.main.allSource
+        classifier = 'sources'
+      }
+      task testSourcesJar(type: Jar) {
+        from sourceSets.test.allSource
+        classifier = 'test-sources'
+      }
+      task javadocJar(type: Jar, dependsOn: javadoc) {
+        classifier = 'javadoc'
+        from javadoc.destinationDir
+      }
+
       // If a publication artifact id is supplied, publish the shadow jar.
       publishing {
         publications {
@@ -339,6 +361,19 @@ ext.applyJavaNature = {
                 asNode().appendNode('name', description)
               }
             }
+            // TODO: Use the shadow test jar here instead of the test jar.
+            artifact packageTests {
+              classifier "tests"
+            }
+            artifact sourcesJar {
+              classifier "sources"
+            }
+            artifact testSourcesJar {
+              classifier "test-sources"
+            }
+            artifact javadocJar {
+              classifier "javadoc"
+            }
           }
         }
       }
diff --git a/examples/java/build.gradle b/examples/java/build.gradle
index 72e63dfcb97..cf1dccccced 100644
--- a/examples/java/build.gradle
+++ b/examples/java/build.gradle
@@ -19,7 +19,7 @@
 import groovy.json.JsonOutput
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-examples-java")
 
 description = "Apache Beam :: Examples :: Java"
 
diff --git a/model/fn-execution/build.gradle b/model/fn-execution/build.gradle
index 140d4d0ca5f..79c47b4712b 100644
--- a/model/fn-execution/build.gradle
+++ b/model/fn-execution/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature(enableFindbugs: false)
+applyJavaNature(artifactId: "beam-model-fn-execution", enableFindbugs: false)
 applyGrpcNature()
 
 description = "Apache Beam :: Model :: Fn Execution"
diff --git a/model/job-management/build.gradle 
b/model/job-management/build.gradle
index 55ebf47698d..96a71d96d6a 100644
--- a/model/job-management/build.gradle
+++ b/model/job-management/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature(enableFindbugs: false)
+applyJavaNature(artifactId: "beam-model-job-management", enableFindbugs: false)
 applyGrpcNature()
 
 description = "Apache Beam :: Model :: Job Management"
diff --git a/model/pipeline/build.gradle b/model/pipeline/build.gradle
index 4e8f3339501..b0cff40bffa 100644
--- a/model/pipeline/build.gradle
+++ b/model/pipeline/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature(enableFindbugs: false)
+applyJavaNature(artifactId: "beam-model-pipeline", enableFindbugs: false)
 applyGrpcNature()
 
 description = "Apache Beam :: Model :: Pipeline"
diff --git a/runners/java-fn-execution/build.gradle 
b/runners/java-fn-execution/build.gradle
index 3ee2b7f22f6..ac8bece711f 100644
--- a/runners/java-fn-execution/build.gradle
+++ b/runners/java-fn-execution/build.gradle
@@ -16,7 +16,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-runners-java-fn-execution")
 
 description = "Apache Beam :: Runners :: Java Fn Execution"
 
diff --git a/runners/local-java/build.gradle b/runners/local-java/build.gradle
index 810ba0f49f0..bef0d574ee6 100644
--- a/runners/local-java/build.gradle
+++ b/runners/local-java/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-runners-local-java-core")
 
 description = "Apache Beam :: Runners :: Local Java Core"
 
diff --git a/runners/reference/java/build.gradle 
b/runners/reference/java/build.gradle
index 1d59ac0dd0e..96ee67b5cb8 100644
--- a/runners/reference/java/build.gradle
+++ b/runners/reference/java/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-runners-reference-java")
 
 description = "Apache Beam :: Runners :: Reference :: Java"
 
diff --git a/runners/reference/job-server/build.gradle 
b/runners/reference/job-server/build.gradle
index 25d92dacee4..30f8f847893 100644
--- a/runners/reference/job-server/build.gradle
+++ b/runners/reference/job-server/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-runners-reference-job-orchestrator")
 
 description = "Apache Beam :: Runners :: Reference :: Job Orchestrator"
 
diff --git a/runners/spark/build.gradle b/runners/spark/build.gradle
index 2bc444f36b8..268769843f6 100644
--- a/runners/spark/build.gradle
+++ b/runners/spark/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-runners-spark")
 
 description = "Apache Beam :: Runners :: Spark"
 
diff --git a/sdks/java/build-tools/build.gradle 
b/sdks/java/build-tools/build.gradle
index 77d413be9c3..6a32e82eaa2 100644
--- a/sdks/java/build-tools/build.gradle
+++ b/sdks/java/build-tools/build.gradle
@@ -17,6 +17,6 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-build-tools")
 
 description = "Apache Beam :: SDKs :: Java :: Build Tools"
diff --git a/sdks/java/core/build.gradle b/sdks/java/core/build.gradle
index bddc95c43cd..a3fbc0a02be 100644
--- a/sdks/java/core/build.gradle
+++ b/sdks/java/core/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-core")
 applyAvroNature()
 
 description = "Apache Beam :: SDKs :: Java :: Core"
diff --git a/sdks/java/extensions/google-cloud-platform-core/build.gradle 
b/sdks/java/extensions/google-cloud-platform-core/build.gradle
index 3ff44d68527..0ad906e9ce8 100644
--- a/sdks/java/extensions/google-cloud-platform-core/build.gradle
+++ b/sdks/java/extensions/google-cloud-platform-core/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: 
"beam-sdks-java-extensions-google-cloud-platform-core")
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Google Cloud 
Platform Core"
 
diff --git a/sdks/java/extensions/jackson/build.gradle 
b/sdks/java/extensions/jackson/build.gradle
index 24ef02aac87..d53421bbe3b 100644
--- a/sdks/java/extensions/jackson/build.gradle
+++ b/sdks/java/extensions/jackson/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-extensions-json-jackson")
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Jackson"
 
diff --git a/sdks/java/extensions/join-library/build.gradle 
b/sdks/java/extensions/join-library/build.gradle
index bca1aaffb45..7d0efecd8c1 100644
--- a/sdks/java/extensions/join-library/build.gradle
+++ b/sdks/java/extensions/join-library/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-extensions-join-library")
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Join library"
 
diff --git a/sdks/java/extensions/protobuf/build.gradle 
b/sdks/java/extensions/protobuf/build.gradle
index 051a5133ea9..cfe2693f89c 100644
--- a/sdks/java/extensions/protobuf/build.gradle
+++ b/sdks/java/extensions/protobuf/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-extensions-protobuf")
 applyGrpcNature()
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Protobuf"
diff --git a/sdks/java/extensions/sketching/build.gradle 
b/sdks/java/extensions/sketching/build.gradle
index cf8e57c0604..ad100b7569c 100644
--- a/sdks/java/extensions/sketching/build.gradle
+++ b/sdks/java/extensions/sketching/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-extensions-sketching")
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Sketching"
 
diff --git a/sdks/java/extensions/sorter/build.gradle 
b/sdks/java/extensions/sorter/build.gradle
index 26aeb9d6420..c0d829b43a6 100644
--- a/sdks/java/extensions/sorter/build.gradle
+++ b/sdks/java/extensions/sorter/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-extensions-sorter")
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: Sorter"
 
diff --git a/sdks/java/extensions/sql/build.gradle 
b/sdks/java/extensions/sql/build.gradle
index 402ec953006..cb54097d03d 100644
--- a/sdks/java/extensions/sql/build.gradle
+++ b/sdks/java/extensions/sql/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-extensions-sql")
 apply plugin: 'ca.coglinc.javacc'
 
 description = "Apache Beam :: SDKs :: Java :: Extensions :: SQL"
diff --git a/sdks/java/fn-execution/build.gradle 
b/sdks/java/fn-execution/build.gradle
index f0accf8bf0e..cdf58061950 100644
--- a/sdks/java/fn-execution/build.gradle
+++ b/sdks/java/fn-execution/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-fn-execution")
 
 description = "Apache Beam :: SDKs :: Java :: Fn Execution"
 
diff --git a/sdks/java/harness/build.gradle b/sdks/java/harness/build.gradle
index dad72041b96..9825fb8b58e 100644
--- a/sdks/java/harness/build.gradle
+++ b/sdks/java/harness/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature(enableShadow: false /* Disable shadow because of custom 
configuration below. */)
+applyJavaNature(artifactId: "beam-sdks-java-harness", enableShadow: false /* 
Disable shadow because of custom configuration below. */)
 apply plugin: "com.github.johnrengelman.shadow"
 
 description = "Apache Beam :: SDKs :: Java :: Harness"
diff --git a/sdks/java/io/amazon-web-services/build.gradle 
b/sdks/java/io/amazon-web-services/build.gradle
index 779cd932f0c..43f146e65b6 100644
--- a/sdks/java/io/amazon-web-services/build.gradle
+++ b/sdks/java/io/amazon-web-services/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-amazon-web-services")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Amazon Web Services"
 
diff --git a/sdks/java/io/amqp/build.gradle b/sdks/java/io/amqp/build.gradle
index 84b84b64f42..5b3541efe95 100644
--- a/sdks/java/io/amqp/build.gradle
+++ b/sdks/java/io/amqp/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-amqp")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: AMQP"
 
diff --git a/sdks/java/io/cassandra/build.gradle 
b/sdks/java/io/cassandra/build.gradle
index 8d38d892966..5de5bc025d8 100644
--- a/sdks/java/io/cassandra/build.gradle
+++ b/sdks/java/io/cassandra/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-cassandra")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Cassandra"
 
diff --git a/sdks/java/io/common/build.gradle b/sdks/java/io/common/build.gradle
index 888f36c995b..6c9b8a30963 100644
--- a/sdks/java/io/common/build.gradle
+++ b/sdks/java/io/common/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-common")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Common"
 
diff --git 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/build.gradle 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/build.gradle
index 9bbed3c7f93..c986b819936 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/build.gradle
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-elasticsearch-tests-2")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Elasticsearch-Tests :: 2.x"
 
diff --git 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/build.gradle 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/build.gradle
index ec02fcc901b..9cb1f3fbf7f 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/build.gradle
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-elasticsearch-tests-5")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Elasticsearch-Tests :: 5.x"
 
diff --git 
a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/build.gradle 
b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/build.gradle
index baeeeecdb99..0093048debf 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/build.gradle
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-elasticsearch-tests-common")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Elasticsearch-Tests :: 
Common"
 
diff --git a/sdks/java/io/elasticsearch/build.gradle 
b/sdks/java/io/elasticsearch/build.gradle
index 3e6ec85daaa..f513f98eae6 100644
--- a/sdks/java/io/elasticsearch/build.gradle
+++ b/sdks/java/io/elasticsearch/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-elasticsearch")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Elasticsearch"
 
diff --git a/sdks/java/io/file-based-io-tests/build.gradle 
b/sdks/java/io/file-based-io-tests/build.gradle
index e797172850a..7f1a1b0dc9e 100644
--- a/sdks/java/io/file-based-io-tests/build.gradle
+++ b/sdks/java/io/file-based-io-tests/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-file-based-io-tests")
 
 description = "Apache Beam :: SDKs :: Java :: File-based-io-tests"
 
diff --git a/sdks/java/io/google-cloud-platform/build.gradle 
b/sdks/java/io/google-cloud-platform/build.gradle
index 6c8a8980722..c38bb8fb391 100644
--- a/sdks/java/io/google-cloud-platform/build.gradle
+++ b/sdks/java/io/google-cloud-platform/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature(enableFindbugs: false)
+applyJavaNature(artifactId: "beam-sdks-java-io-google-cloud-platform", 
enableFindbugs: false)
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Google Cloud Platform"
 
diff --git a/sdks/java/io/hadoop-common/build.gradle 
b/sdks/java/io/hadoop-common/build.gradle
index a1316c3ee50..fde57173482 100644
--- a/sdks/java/io/hadoop-common/build.gradle
+++ b/sdks/java/io/hadoop-common/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-hadoop-common")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Hadoop Common"
 
diff --git a/sdks/java/io/hadoop-file-system/build.gradle 
b/sdks/java/io/hadoop-file-system/build.gradle
index b7edb8045e7..b682d876b00 100644
--- a/sdks/java/io/hadoop-file-system/build.gradle
+++ b/sdks/java/io/hadoop-file-system/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-hadoop-file-system")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Hadoop File System"
 
diff --git a/sdks/java/io/hadoop-input-format/build.gradle 
b/sdks/java/io/hadoop-input-format/build.gradle
index 1acc8f4bab5..6cb7932abf6 100644
--- a/sdks/java/io/hadoop-input-format/build.gradle
+++ b/sdks/java/io/hadoop-input-format/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-hadoop-input-format")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Hadoop Input Format"
 
diff --git a/sdks/java/io/hbase/build.gradle b/sdks/java/io/hbase/build.gradle
index 76624e4095d..4bc938d7a66 100644
--- a/sdks/java/io/hbase/build.gradle
+++ b/sdks/java/io/hbase/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-hbase")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: HBase"
 
diff --git a/sdks/java/io/hcatalog/build.gradle 
b/sdks/java/io/hcatalog/build.gradle
index 63ade21a453..18131a756ae 100644
--- a/sdks/java/io/hcatalog/build.gradle
+++ b/sdks/java/io/hcatalog/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-hcatalog")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: HCatalog"
 
diff --git a/sdks/java/io/jdbc/build.gradle b/sdks/java/io/jdbc/build.gradle
index 503993ae4f2..237634e1478 100644
--- a/sdks/java/io/jdbc/build.gradle
+++ b/sdks/java/io/jdbc/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-jdbc")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: JDBC"
 
diff --git a/sdks/java/io/jms/build.gradle b/sdks/java/io/jms/build.gradle
index 5ccef6790fa..ba301ccf7cc 100644
--- a/sdks/java/io/jms/build.gradle
+++ b/sdks/java/io/jms/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-jms")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: JMS"
 
diff --git a/sdks/java/io/kafka/build.gradle b/sdks/java/io/kafka/build.gradle
index 54b8b9c4ba6..977edebc58b 100644
--- a/sdks/java/io/kafka/build.gradle
+++ b/sdks/java/io/kafka/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature(enableFindbugs: false)
+applyJavaNature(artifactId: "beam-sdks-java-io-kafka", enableFindbugs: false)
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Kafka"
 
diff --git a/sdks/java/io/kinesis/build.gradle 
b/sdks/java/io/kinesis/build.gradle
index f4123a831ce..0d01c6cfc08 100644
--- a/sdks/java/io/kinesis/build.gradle
+++ b/sdks/java/io/kinesis/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-kinesis")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Kinesis"
 
diff --git a/sdks/java/io/mongodb/build.gradle 
b/sdks/java/io/mongodb/build.gradle
index 22cb5994c62..92237800540 100644
--- a/sdks/java/io/mongodb/build.gradle
+++ b/sdks/java/io/mongodb/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-mongodb")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: MongoDB"
 
diff --git a/sdks/java/io/mqtt/build.gradle b/sdks/java/io/mqtt/build.gradle
index 3d1772cca87..7ec080c83fb 100644
--- a/sdks/java/io/mqtt/build.gradle
+++ b/sdks/java/io/mqtt/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-mqtt")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: MQTT"
 
diff --git a/sdks/java/io/redis/build.gradle b/sdks/java/io/redis/build.gradle
index 974ceaea1be..172a248b397 100644
--- a/sdks/java/io/redis/build.gradle
+++ b/sdks/java/io/redis/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-redis")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Redis"
 
diff --git a/sdks/java/io/solr/build.gradle b/sdks/java/io/solr/build.gradle
index 489cb0afad9..f7f9101d9cc 100644
--- a/sdks/java/io/solr/build.gradle
+++ b/sdks/java/io/solr/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-solr")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Solr"
 
diff --git a/sdks/java/io/tika/build.gradle b/sdks/java/io/tika/build.gradle
index 23f7f160e9d..f40321a708b 100644
--- a/sdks/java/io/tika/build.gradle
+++ b/sdks/java/io/tika/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-tika")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: Tika"
 
diff --git a/sdks/java/io/xml/build.gradle b/sdks/java/io/xml/build.gradle
index 5e66ad96f35..713666da42e 100644
--- a/sdks/java/io/xml/build.gradle
+++ b/sdks/java/io/xml/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-io-xml")
 
 description = "Apache Beam :: SDKs :: Java :: IO :: XML"
 
diff --git a/sdks/java/maven-archetypes/examples/build.gradle 
b/sdks/java/maven-archetypes/examples/build.gradle
index d7c938612a8..c701303c2be 100644
--- a/sdks/java/maven-archetypes/examples/build.gradle
+++ b/sdks/java/maven-archetypes/examples/build.gradle
@@ -17,10 +17,50 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-maven-archetypes-examples")
 
 description = "Apache Beam :: SDKs :: Java :: Maven Archetypes :: Examples"
 
+processResources {
+  filter org.apache.tools.ant.filters.ReplaceTokens, tokens: [
+    'project.version':  version,
+    'bigquery.version': 
dependencies.create(project.library.java.google_api_services_bigquery).getVersion(),
+    'google-clients.version': 
dependencies.create(project.library.java.google_api_client).getVersion(),
+    'guava.version': 
dependencies.create(project.library.java.guava).getVersion(),
+    'hamcrest.version': 
dependencies.create(project.library.java.hamcrest_library).getVersion(),
+    'jackson.version': 
dependencies.create(project.library.java.jackson_core).getVersion(),
+    'joda.version': 
dependencies.create(project.library.java.joda_time).getVersion(),
+    'junit.version': 
dependencies.create(project.library.java.junit).getVersion(),
+    'pubsub.version': 
dependencies.create(project.library.java.google_api_services_pubsub).getVersion(),
+    'slf4j.version': 
dependencies.create(project.library.java.slf4j_api).getVersion(),
+    'spark.version': 
dependencies.create(project.library.java.spark_core).getVersion(),
+    'hadoop.version': 
dependencies.create(project.library.java.hadoop_client).getVersion(),
+    'mockito.version': 
dependencies.create(project.library.java.mockito_core).getVersion(),
+    'maven-compiler-plugin.version': 
dependencies.create(project.library.maven.maven_compiler_plugin).getVersion(),
+    'maven-exec-plugin.version': 
dependencies.create(project.library.maven.maven_exec_plugin).getVersion(),
+    'maven-jar-plugin.version': 
dependencies.create(project.library.maven.maven_jar_plugin).getVersion(),
+    'maven-shade-plugin.version': 
dependencies.create(project.library.maven.maven_shade_plugin).getVersion(),
+    'maven-surefire-plugin.version': 
dependencies.create(project.library.maven.maven_surefire_plugin).getVersion(),
+  ]
+}
+
+// The :examples:java main/test sourceSets are used in generation.
+evaluationDependsOn(':examples:java')
+
+task generateSources(type: Exec) {
+  println "Generating sources for archetype"
+  inputs.file './generate-sources.sh'
+  inputs.dir project(':examples:java').sourceSets.main.allSource
+  inputs.dir project(':examples:java').sourceSets.test.allSource
+  commandLine './generate-sources.sh'
+}
+
+sourceSets {
+ main {
+  output.dir('src', builtBy: 'generateSources')
+ }
+}
+
 dependencies {
   shadow project(path: ":examples:java", configuration: "shadow")
 }
diff --git a/sdks/java/maven-archetypes/starter/build.gradle 
b/sdks/java/maven-archetypes/starter/build.gradle
index b8173f28ec2..a7a5bd5d29f 100644
--- a/sdks/java/maven-archetypes/starter/build.gradle
+++ b/sdks/java/maven-archetypes/starter/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-maven-archetypes-starter")
 
 description = "Apache Beam :: SDKs :: Java :: Maven Archetypes :: Starter"
 
diff --git a/sdks/java/nexmark/build.gradle b/sdks/java/nexmark/build.gradle
index 0f105ee1b24..078365df375 100644
--- a/sdks/java/nexmark/build.gradle
+++ b/sdks/java/nexmark/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(artifactId: "beam-sdks-java-nexmark")
 
 description = "Apache Beam :: SDKs :: Java :: Nexmark"
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 81689)
    Time Spent: 7.5h  (was: 7h 20m)

> Use Gradle to build/release project
> -----------------------------------
>
>                 Key: BEAM-3249
>                 URL: https://issues.apache.org/jira/browse/BEAM-3249
>             Project: Beam
>          Issue Type: Improvement
>          Components: build-system, testing
>            Reporter: Luke Cwik
>            Assignee: Luke Cwik
>            Priority: Major
>          Time Spent: 7.5h
>  Remaining Estimate: 0h
>
> I have collected data by running several builds against master using Gradle 
> and Maven without using Gradle's support for incremental builds.
> Gradle (mins)
> min: 25.04
> max: 160.14
> median: 45.78
> average: 52.19
> stdev: 30.80
> Maven (mins)
> min: 56.86
> max: 216.55
> median: 87.93
> average: 109.10
> stdev: 48.01
> I excluded a few timeouts (240 mins) that happened during the Maven build 
> from its numbers but we can see conclusively that Gradle is about twice as 
> fast for the build when compared to Maven when run using Jenkins.
> Original dev@ thread: 
> https://lists.apache.org/thread.html/225dddcfc78f39bbb296a0d2bbef1caf37e17677c7e5573f0b6fe253@%3Cdev.beam.apache.org%3E
> The data is available here 
> https://docs.google.com/spreadsheets/d/1MHVjF-xoI49_NJqEQakUgnNIQ7Qbjzu8Y1q_h3dbF1M/edit?usp=sharing



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to