You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gobblin.apache.org by su...@apache.org on 2020/05/27 17:47:34 UTC

[incubator-gobblin] branch master updated: [GOBBLIN-1159] Added code to publish gobblin artifacts to bintray

This is an automated email from the ASF dual-hosted git repository.

suvasude pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-gobblin.git


The following commit(s) were added to refs/heads/master by this push:
     new eae6de5  [GOBBLIN-1159] Added code to publish gobblin artifacts to bintray
eae6de5 is described below

commit eae6de57b160c09035b0c28607557f797cd895b4
Author: vbohra <vb...@linkedin.com>
AuthorDate: Wed May 27 10:47:26 2020 -0700

    [GOBBLIN-1159] Added code to publish gobblin artifacts to bintray
    
    Closes #2998 from vikrambohra/bintrayFinal
---
 .travis.yml                                        |   4 +
 build.gradle                                       |   8 ++
 gobblin-binary-management/build.gradle             |   6 +-
 gobblin-cluster/build.gradle                       |  15 ++-
 gobblin-compaction/build.gradle                    |  28 ++---
 gobblin-core/build.gradle                          |   2 +-
 gobblin-example/build.gradle                       |   4 +-
 gobblin-metastore/build.gradle                     |   2 +-
 .../gobblin-azure-datalake/build.gradle            |   2 +-
 gobblin-modules/gobblin-kafka-08/build.gradle      |   8 +-
 gobblin-modules/gobblin-kafka-09/build.gradle      |   8 +-
 gobblin-modules/gobblin-orc-dep/build.gradle       |  12 +++
 gobblin-rest-service/gobblin-rest-api/build.gradle |  19 ++++
 gobblin-restli/api.gradle                          |  24 +++++
 gobblin-tunnel/build.gradle                        |   2 +-
 gobblin-utility/build.gradle                       |   6 +-
 gradle/scripts/bintrayPublishing.gradle            | 119 +++++++++++++++++++++
 gradle/scripts/mavenPublishing.gradle              |  68 ------------
 gradle/scripts/nexusPublishing.gradle              |  68 ------------
 travis/bintrayDeploy.sh                            |  39 +++++++
 20 files changed, 273 insertions(+), 171 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index d742b91..ebd32c1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -33,6 +33,7 @@ script:
 
 after_success:
   - bash <(cat .codecov_bash)
+  - ./travis/bintrayDeploy.sh
 after_failure: ./travis/junit-errors-to-stdout.sh
 
 
@@ -42,6 +43,9 @@ env:
   - RUN_TEST_GROUP=default
   - RUN_TEST_GROUP=group1
   - RUN_TEST_GROUP=coverage
+  global:
+    - secure: f7aIQDgpWHIkYf19mtViOLwH/zBAeVuqOQtu9G4cfDl6R+lqYbTuSEA+HyP2EzT9E7w2bPdVRuwUEb3/FFCBcHTjSBiQ+Nnhtto1RvoXjYlzV9ImG/5s4dsYsrUGWyWxoWXHNRFLE8Xeq4pe6lHR/Md+MajuxdBxgd8AFefMvTEW7a9h8cc+w+kEkKZ9msyiJTzxiTy7d9Yob6bNOEfhTAIUk5jK+a9qqYjDILaps75Y6BMcI3fQZyZno3+/8KBNhk7ncQKf4voRwmQRcAaVM0isQ2kUW4MIRykXRQT3zZJcXxYUoNThn0T9RydjzSu14EM5iNY9IdJVTsojihI/Fvfac9K24UAV5d/k8vlrnTJ4feJfDR1LoHNtCa72U8/cuEKFu2WoJg+kmukcW3pOAshRVLaZw7eCUMS+HevG1uG2wLISN3lAyVoqJCyvu+HaoD1wWfnwfxdZxUXDi+T+Pv7niqVshX [...]
+    - secure: nTBLE5c295gwHfsMAGLhHz3Dr8eUFlEj/T6kRyVmlQ7ouvs8V97FUznlh0KwRazG0cZ5H0iXm8JxOYac3J04pvK+wOc4BpUq4WYlgBeypo0pcBp4G+5yM3+JoA0B3YbVIDKvZ6o3EBOMQ2vK/kjhe3SpOOTO4wJmfRsCx5bnbFmNKA2C8/DXDGhzfM5tfSapbc4QVYhKxSyUpq+izYGY9BZvcGxRPXLaiIxVLex3ZGpuOtrzl8gTwVnWqlQ5yYTUUdNcdJW7H1AwIlgkKKMS9+3q0KqXrJ0EtvRgbvnWdIKh1/0rOA6i4S0XgCV4mYTDqnZWO6sg3CUnAd2hFTyRI9acSWAzifkTyZD2gfsDgvsv/JQOuTOW1hZQ2g9et+vIW0wbRvIprf+wbRsNxdE7uUpGFJ9TYZJDPG6HJwqaoqyo6rcLS7T7kE6o0EZJTMw3Rq1TaSU65Ta4hvO2muEXtpPHEHh65G [...]
 
 jdk:
   - openjdk8
diff --git a/build.gradle b/build.gradle
index 74eec27..f7cc8a2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -42,6 +42,7 @@ buildscript {
   }
   dependencies {
     classpath "gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.14.0"
+    classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.+'
   }
 }
 
@@ -131,6 +132,7 @@ apply from: 'gradle/scripts/sourcesJar.gradle'
 
 apply from: 'gradle/scripts/mavenPublishing.gradle'
 apply from: 'gradle/scripts/nexusPublishing.gradle'
+apply from: 'gradle/scripts/bintrayPublishing.gradle'
 apply from: 'gradle/scripts/javaVersionCheck.gradle'
 
 apply from: 'gradle/scripts/rat.gradle'
@@ -151,6 +153,12 @@ allprojects {
   }
 }
 
+task printVersionName {
+  doLast {
+    println project.version
+  }
+}
+
 rat {
   excludes = [
     '**/.git/**',
diff --git a/gobblin-binary-management/build.gradle b/gobblin-binary-management/build.gradle
index be482cd..ee8dd9d 100644
--- a/gobblin-binary-management/build.gradle
+++ b/gobblin-binary-management/build.gradle
@@ -25,9 +25,9 @@ dependencies {
   compile externalDependency.avroMapredH2
   compile externalDependency.guava
   compile externalDependency.hadoopHdfs
-  runtime externalDependency.hadoopCommon
-  runtime externalDependency.hadoopClientCore
-  runtime externalDependency.hadoopAuth
+  runtimeOnly externalDependency.hadoopCommon
+  runtimeOnly externalDependency.hadoopClientCore
+  runtimeOnly externalDependency.hadoopAuth
   compile externalDependency.hiveMetastore
   compile externalDependency.hiveExec
   compile externalDependency.lombok
diff --git a/gobblin-cluster/build.gradle b/gobblin-cluster/build.gradle
index e52854d..2c8d697 100644
--- a/gobblin-cluster/build.gradle
+++ b/gobblin-cluster/build.gradle
@@ -50,7 +50,7 @@ dependencies {
   compile externalDependency.findBugsAnnotations
   compile externalDependency.helix
 
-  runtime project(":gobblin-modules:gobblin-service-kafka")
+  runtimeOnly project(":gobblin-modules:gobblin-service-kafka")
 
   testCompile project(":gobblin-example")
 
@@ -71,6 +71,7 @@ configurations {
 
 artifacts {
   tests testJar
+  archives testJar
 }
 
 configurations {
@@ -85,6 +86,18 @@ configurations {
   }
 }
 
+project.publishing {
+  publications {
+    testsPub(MavenPublication) {
+      artifactId "test-${project.archivesBaseName}"
+      artifacts = [testJar]
+      pom pomAttributes
+      pom.withXml addRuntimeDependenciesToPom
+    }
+  }
+}
+addPublicationToBintray("testsPub")
+
 test {
   workingDir rootProject.rootDir
   maxParallelForks = 1
diff --git a/gobblin-compaction/build.gradle b/gobblin-compaction/build.gradle
index 7f8a450..74f26eb 100644
--- a/gobblin-compaction/build.gradle
+++ b/gobblin-compaction/build.gradle
@@ -31,10 +31,10 @@ dependencies {
   // with hive-exec-core in older version(1.0.1), we need to shadow ord-mapreduce's transitive deps.
   // and include direct orc-mapreduce library just as a compileOnly dependency
   compileOnly externalDependency.orcMapreduce
-  compile project(path: ":gobblin-modules:gobblin-orc-dep", configuration:"shadow")
+  compile project(path: ":gobblin-modules:gobblin-orc-dep")
 
   compile externalDependency.calciteCore
-  compile externalDependency.calciteAvatica
+  testCompile externalDependency.calciteAvatica
   compile externalDependency.jhyde
   compile externalDependency.avro
   compile externalDependency.commonsLang
@@ -42,21 +42,21 @@ dependencies {
   compile externalDependency.mockito
   compile externalDependency.testng
 
-  runtime externalDependency.hadoopCommon
-  runtime externalDependency.hadoopClientCore
-  runtime externalDependency.hadoopHdfs
-  runtime externalDependency.hadoopAuth
+  runtimeOnly externalDependency.hadoopCommon
+  runtimeOnly externalDependency.hadoopClientCore
+  runtimeOnly externalDependency.hadoopHdfs
+  runtimeOnly externalDependency.hadoopAuth
 
-  runtime(externalDependency.hiveService) {
+  runtimeOnly(externalDependency.hiveService) {
     exclude group: 'org.apache.hive', module: 'hive-exec'
   }
-  runtime externalDependency.hiveJdbc
-  runtime externalDependency.hiveMetastore
-  runtime externalDependency.antlrRuntime
-  runtime externalDependency.derby
-  runtime externalDependency.jdo2
-  runtime externalDependency.datanucleusCore
-  runtime externalDependency.datanucleusRdbms
+  runtimeOnly externalDependency.hiveJdbc
+  runtimeOnly externalDependency.hiveMetastore
+  runtimeOnly externalDependency.antlrRuntime
+  runtimeOnly externalDependency.derby
+  runtimeOnly externalDependency.jdo2
+  runtimeOnly externalDependency.datanucleusCore
+  runtimeOnly externalDependency.datanucleusRdbms
 
   testCompile externalDependency.testng
 }
diff --git a/gobblin-core/build.gradle b/gobblin-core/build.gradle
index d0b9a9b..9beee22 100644
--- a/gobblin-core/build.gradle
+++ b/gobblin-core/build.gradle
@@ -58,7 +58,7 @@ dependencies {
   compile externalDependency.opencsv
   compile externalDependency.hadoopHdfs
 
-  runtime externalDependency.protobuf
+  runtimeOnly externalDependency.protobuf
 
   testRuntime externalDependency.hadoopAws
   testCompile externalDependency.calciteCore
diff --git a/gobblin-example/build.gradle b/gobblin-example/build.gradle
index 441ea8e..f779126 100644
--- a/gobblin-example/build.gradle
+++ b/gobblin-example/build.gradle
@@ -22,8 +22,8 @@ dependencies {
     compile project(":gobblin-core")
     compile project(":gobblin-runtime")
     compile project(":gobblin-data-management")
-    runtime project(":gobblin-modules:gobblin-kafka-08")
-    runtime project(":gobblin-modules:gobblin-eventhub")
+    runtimeOnly project(":gobblin-modules:gobblin-kafka-08")
+    runtimeOnly project(":gobblin-modules:gobblin-eventhub")
     compile project(":gobblin-modules:gobblin-http")
     compile project(":gobblin-modules:gobblin-parquet")
     compile externalDependency.avro
diff --git a/gobblin-metastore/build.gradle b/gobblin-metastore/build.gradle
index a78df44..64850a1 100644
--- a/gobblin-metastore/build.gradle
+++ b/gobblin-metastore/build.gradle
@@ -37,7 +37,7 @@ dependencies {
     compile externalDependency.lombok
     compile externalDependency.reflections
 
-    runtime externalDependency.mysqlConnector
+    runtimeOnly externalDependency.mysqlConnector
 
     testCompile externalDependency.testng
     testCompile externalDependency.embeddedProcess
diff --git a/gobblin-modules/gobblin-azure-datalake/build.gradle b/gobblin-modules/gobblin-azure-datalake/build.gradle
index 5eab394..9d44004 100644
--- a/gobblin-modules/gobblin-azure-datalake/build.gradle
+++ b/gobblin-modules/gobblin-azure-datalake/build.gradle
@@ -18,7 +18,7 @@
 apply plugin: 'java'
 
 dependencies {
-    runtime externalDependency.hadoopAdl
+    runtimeOnly externalDependency.hadoopAdl
 }
 
 configurations {
diff --git a/gobblin-modules/gobblin-kafka-08/build.gradle b/gobblin-modules/gobblin-kafka-08/build.gradle
index 49c44a5..78a2a39 100644
--- a/gobblin-modules/gobblin-kafka-08/build.gradle
+++ b/gobblin-modules/gobblin-kafka-08/build.gradle
@@ -50,10 +50,10 @@ dependencies {
   compile externalDependency.typesafeConfig
   compile externalDependency.findBugsAnnotations
 
-  runtime externalDependency.confluentAvroSerializer
-  runtime externalDependency.confluentJsonSerializer
-  runtime externalDependency.confluentSchemaRegistryClient
-  runtime externalDependency.protobuf
+  runtimeOnly externalDependency.confluentAvroSerializer
+  runtimeOnly externalDependency.confluentJsonSerializer
+  runtimeOnly externalDependency.confluentSchemaRegistryClient
+  runtimeOnly externalDependency.protobuf
 
   testCompile project(":gobblin-modules:gobblin-service-kafka")
   testCompile project(":gobblin-runtime")
diff --git a/gobblin-modules/gobblin-kafka-09/build.gradle b/gobblin-modules/gobblin-kafka-09/build.gradle
index b33eb55..44a8bd2 100644
--- a/gobblin-modules/gobblin-kafka-09/build.gradle
+++ b/gobblin-modules/gobblin-kafka-09/build.gradle
@@ -45,10 +45,10 @@ dependencies {
   compile externalDependency.typesafeConfig
   compile externalDependency.findBugsAnnotations
 
-  runtime externalDependency.confluentAvroSerializer
-  runtime externalDependency.confluentJsonSerializer
-  runtime externalDependency.confluentSchemaRegistryClient
-  runtime externalDependency.protobuf
+  runtimeOnly externalDependency.confluentAvroSerializer
+  runtimeOnly externalDependency.confluentJsonSerializer
+  runtimeOnly externalDependency.confluentSchemaRegistryClient
+  runtimeOnly externalDependency.protobuf
 
   testCompile project(":gobblin-service")
   testCompile project(":gobblin-modules:gobblin-service-kafka")
diff --git a/gobblin-modules/gobblin-orc-dep/build.gradle b/gobblin-modules/gobblin-orc-dep/build.gradle
index 6120649..e3f41eb 100644
--- a/gobblin-modules/gobblin-orc-dep/build.gradle
+++ b/gobblin-modules/gobblin-orc-dep/build.gradle
@@ -52,6 +52,7 @@ configurations {
 
 shadowJar {
   zip64 true
+  classifier ""
 
   dependencies {
     exclude dependency('org.slf4j:.*')
@@ -62,4 +63,15 @@ shadowJar {
   relocate 'com.google', 'shadow.gobblin.orc.com.google'
 }
 
+publishing {
+  publications {
+    shadowPub(MavenPublication) {
+      artifacts = [shadowJar]
+      pom pomAttributes
+      pom.withXml addRuntimeDependenciesToPom
+    }
+  }
+}
+addPublicationToBintray("shadowPub")
+
 ext.classification="library"
diff --git a/gobblin-rest-service/gobblin-rest-api/build.gradle b/gobblin-rest-service/gobblin-rest-api/build.gradle
index 6745aa3..5318611 100644
--- a/gobblin-rest-service/gobblin-rest-api/build.gradle
+++ b/gobblin-rest-service/gobblin-rest-api/build.gradle
@@ -112,6 +112,25 @@ artifacts {
     archives dataTemplateSourcesJar, dataTemplateJavadocJar, restClientSourcesJar, restClientJavadocJar
 }
 
+publishing {
+  publications {
+    dataTemplate(MavenPublication) {
+      artifactId dataTemplateName
+      artifacts = [mainDataTemplateJar, dataTemplateSourcesJar, dataTemplateJavadocJar]
+      pom pomAttributes
+      pom.withXml addRuntimeDependenciesToPom
+    }
+    restClient(MavenPublication) {
+      artifactId restClientName
+      artifacts = [mainRestClientJar, restClientSourcesJar, restClientJavadocJar]
+      pom pomAttributes
+      pom.withXml addRuntimeDependenciesToPom
+    }
+  }
+}
+addPublicationToBintray("dataTemplate")
+addPublicationToBintray("restClient")
+
 buildscript {
     repositories {
         mavenCentral()
diff --git a/gobblin-restli/api.gradle b/gobblin-restli/api.gradle
index 688dae8..f1b5ab4 100644
--- a/gobblin-restli/api.gradle
+++ b/gobblin-restli/api.gradle
@@ -94,6 +94,18 @@ if (file("${project.projectDir}/src/main/idl").exists()) {
   artifacts {
     archives mainRestClientJar, restClientSourcesJar, restClientJavadocJar
   }
+
+  publishing {
+    publications {
+      restClient(MavenPublication) {
+        artifactId restClientName
+        artifacts = [mainRestClientJar, restClientSourcesJar, restClientJavadocJar]
+        pom pomAttributes
+        pom.withXml addRuntimeDependenciesToPom
+      }
+    }
+  }
+  addPublicationToBintray("restClient")
 }
 
 install {
@@ -123,3 +135,15 @@ if (rootProject.ext.publishToMaven || rootProject.ext.publishToNexus) {
     }
   }
 }
+
+publishing {
+  publications {
+    dataTemplate(MavenPublication) {
+      artifactId dataTemplateName
+      artifacts = [mainDataTemplateJar, dataTemplateSourcesJar, dataTemplateJavadocJar]
+      pom pomAttributes
+      pom.withXml addRuntimeDependenciesToPom
+    }
+  }
+}
+addPublicationToBintray("dataTemplate")
diff --git a/gobblin-tunnel/build.gradle b/gobblin-tunnel/build.gradle
index 647aae6..4577011 100644
--- a/gobblin-tunnel/build.gradle
+++ b/gobblin-tunnel/build.gradle
@@ -23,7 +23,7 @@ dependencies {
 
   compile externalDependency.slf4j
 
-  runtime externalDependency.mysqlConnector
+  runtimeOnly externalDependency.mysqlConnector
 
   testCompile externalDependency.mockserver
   testCompile externalDependency.testng
diff --git a/gobblin-utility/build.gradle b/gobblin-utility/build.gradle
index 485641b..a8588a9 100644
--- a/gobblin-utility/build.gradle
+++ b/gobblin-utility/build.gradle
@@ -48,9 +48,9 @@ dependencies {
   compile externalDependency.hadoopHdfs
   compile externalDependency.groovy
 
-  runtime externalDependency.hadoopCommon
-  runtime externalDependency.hadoopClientCore
-  runtime externalDependency.hadoopAuth
+  runtimeOnly externalDependency.hadoopCommon
+  runtimeOnly externalDependency.hadoopClientCore
+  runtimeOnly externalDependency.hadoopAuth
 
   testCompile externalDependency.hamcrest
   testCompile externalDependency.testng
diff --git a/gradle/scripts/bintrayPublishing.gradle b/gradle/scripts/bintrayPublishing.gradle
new file mode 100644
index 0000000..df5a8ee
--- /dev/null
+++ b/gradle/scripts/bintrayPublishing.gradle
@@ -0,0 +1,119 @@
+/*
+ * 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.
+ */
+
+import org.gradle.api.internal.java.JavaLibrary
+
+ext.pomAttributes = {
+  packaging = 'jar'
+  // optionally artifactId can be defined here
+  name = 'Apache Gobblin (incubating)'
+  description = 'A distributed data integration framework for streaming and batch data ecosystems.'
+  url = 'https://gobblin.apache.org/'
+
+  scm {
+    url = 'https://git-wip-us.apache.org/repos/asf?p=incubator-gobblin.git;a=tree'
+    connection = 'scm:http://git-wip-us.apache.org/repos/asf/incubator-gobblin.git'
+    developerConnection = 'scm:https://git-wip-us.apache.org/repos/asf/incubator-gobblin.git'
+  }
+
+  licenses {
+    license {
+      name = 'The Apache License, Version 2.0'
+      url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+    }
+  }
+}
+
+subprojects{
+  plugins.withType(JavaPlugin) {
+    plugins.apply('maven-publish')
+    publishing {
+      publications {
+        mavenJava(MavenPublication) {
+          from components.java
+          artifact sourcesJar
+          artifact javadocJar
+
+          pom pomAttributes
+        }
+      }
+    }
+  }
+
+  plugins.apply('com.jfrog.bintray')
+  bintray {
+    user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER')
+    key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
+    publications = ["mavenJava"]
+    publish = true
+    dryRun = project.hasProperty("bintray.dryRun")
+    pkg {
+      repo = 'maven'
+      name = 'gobblin-github'
+      userOrg = 'linkedin'
+      licenses = ['Apache-2.0']
+      vcsUrl = 'https://github.com/apache/incubator-gobblin.git'
+      version {
+        name = project.version
+        desc = 'Apache Gobblin'
+        released = new Date()
+        // disable gpg signing to speed up publishing
+        gpg {
+          sign = false
+        }
+        // disable upload to maven central
+        mavenCentralSync {
+          sync = false
+        }
+      }
+    }
+  }
+
+  tasks.bintrayUpload {
+    doFirst {
+      println "Running bintrayUpload for $project.name "
+    }
+  }
+
+  ext.addPublicationToBintray = { pubName ->
+    def newC = project.bintray.publications.collect()
+    newC.add(pubName)
+    project.bintray.publications = newC
+  }
+
+  ext.addRuntimeDependenciesToPom = {
+    def dependenciesNode = asNode().appendNode('dependencies')
+    configurations.runtime.allDependencies.each {
+      if (it.group != null && it.name != null) {
+        def dependencyNode = dependenciesNode.appendNode('dependency')
+        dependencyNode.appendNode('groupId', it.group)
+        dependencyNode.appendNode('artifactId', it.name)
+        dependencyNode.appendNode('version', it.version)
+
+        if (it.excludeRules.size() > 0) {
+          def exclusionsNode = dependencyNode.appendNode('exclusions')
+          it.excludeRules.each { rule ->
+            def exclusionNode = exclusionsNode.appendNode('exclusion')
+            exclusionNode.appendNode('groupId', rule.group)
+            exclusionNode.appendNode('artifactId', rule.module)
+          }
+        }
+      }
+    }
+  }
+
+}
\ No newline at end of file
diff --git a/gradle/scripts/mavenPublishing.gradle b/gradle/scripts/mavenPublishing.gradle
index 799464c..9a72c8c 100644
--- a/gradle/scripts/mavenPublishing.gradle
+++ b/gradle/scripts/mavenPublishing.gradle
@@ -64,74 +64,6 @@ gradle.taskGraph.afterTask {
   }
 }
 
-ext.pomAttributes = {
-  packaging 'jar'
-  // optionally artifactId can be defined here
-  name 'Apache Gobblin (incubating)'
-  description 'A distributed data integration framework for streaming and batch data ecosystems.'
-  url 'https://gobblin.apache.org/'
-
-  scm {
-    url 'https://git-wip-us.apache.org/repos/asf?p=incubator-gobblin.git;a=tree'
-    connection 'scm:http://git-wip-us.apache.org/repos/asf/incubator-gobblin.git'
-    developerConnection 'scm:https://git-wip-us.apache.org/repos/asf/incubator-gobblin.git'
-  }
-
-  licenses {
-    license {
-      name 'The Apache License, Version 2.0'
-      url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
-    }
-  }
-
-  developers {
-    developer {
-      name 'Abhishek Tiwari'
-      organization 'LinkedIn'
-    }
-    developer {
-      name 'Chavdar Botev'
-      organization 'LinkedIn'
-    }
-    developer {
-      name 'Issac Buenrostro'
-      organization 'LinkedIn'
-    }
-    developer {
-      name 'Min Tu'
-      organization 'LinkedIn'
-    }
-    developer {
-      name 'Narasimha Veeramreddy'
-      organization 'LinkedIn'
-    }
-    developer {
-      name 'Pradhan Cadabam'
-      organization 'LinkedIn'
-    }
-    developer {
-      name 'Sahil Takiar'
-      organization 'LinkedIn'
-    }
-    developer {
-      name 'Shirshanka Das'
-      organization 'LinkedIn'
-    }
-    developer {
-      name 'Yinan Li'
-      organization 'LinkedIn'
-    }
-    developer {
-      name 'Ying Dai'
-      organization 'LinkedIn'
-    }
-    developer {
-      name 'Ziyang Liu'
-      organization 'LinkedIn'
-    }
-  }
-}
-
 subprojects {
   plugins.withType(JavaPlugin) {
     plugins.apply('maven')
diff --git a/gradle/scripts/nexusPublishing.gradle b/gradle/scripts/nexusPublishing.gradle
index 86d89b3..7fa8e95 100644
--- a/gradle/scripts/nexusPublishing.gradle
+++ b/gradle/scripts/nexusPublishing.gradle
@@ -64,74 +64,6 @@ gradle.taskGraph.afterTask {
     }
 }
 
-ext.pomAttributes = {
-    packaging 'jar'
-    // optionally artifactId can be defined here
-    name 'Apache Gobblin (incubating)'
-    description 'A distributed data integration framework for streaming and batch data ecosystems.'
-    url 'https://gobblin.apache.org/'
-
-    scm {
-        url 'https://git-wip-us.apache.org/repos/asf?p=incubator-gobblin.git;a=tree'
-        connection 'scm:http://git-wip-us.apache.org/repos/asf/incubator-gobblin.git'
-        developerConnection 'scm:https://git-wip-us.apache.org/repos/asf/incubator-gobblin.git'
-    }
-
-    licenses {
-        license {
-            name 'The Apache License, Version 2.0'
-            url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
-        }
-    }
-
-    developers {
-        developer {
-            name 'Abhishek Tiwari'
-            organization 'LinkedIn'
-        }
-        developer {
-            name 'Chavdar Botev'
-            organization 'LinkedIn'
-        }
-        developer {
-            name 'Issac Buenrostro'
-            organization 'LinkedIn'
-        }
-        developer {
-            name 'Min Tu'
-            organization 'LinkedIn'
-        }
-        developer {
-            name 'Narasimha Veeramreddy'
-            organization 'LinkedIn'
-        }
-        developer {
-            name 'Pradhan Cadabam'
-            organization 'LinkedIn'
-        }
-        developer {
-            name 'Sahil Takiar'
-            organization 'LinkedIn'
-        }
-        developer {
-            name 'Shirshanka Das'
-            organization 'LinkedIn'
-        }
-        developer {
-            name 'Yinan Li'
-            organization 'LinkedIn'
-        }
-        developer {
-            name 'Ying Dai'
-            organization 'LinkedIn'
-        }
-        developer {
-            name 'Ziyang Liu'
-            organization 'LinkedIn'
-        }
-    }
-}
-
 subprojects {
     plugins.withType(JavaPlugin) {
         plugins.apply('maven')
diff --git a/travis/bintrayDeploy.sh b/travis/bintrayDeploy.sh
new file mode 100755
index 0000000..57f27e9
--- /dev/null
+++ b/travis/bintrayDeploy.sh
@@ -0,0 +1,39 @@
+#
+# 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.
+#
+
+#
+# Test script used by Travis to test the
+# hadoop1 or hadoop2 versions of gobblin.
+#
+
+#!/bin/bash
+set -e
+
+echo "Starting $0 at " $(date)
+PROJECT_VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}')
+
+echo "Project Version: $PROJECT_VERSION"
+BUILD_VERSION=$PROJECT_VERSION-dev-${TRAVIS_BUILD_NUMBER}
+echo "Build Version: $BUILD_VERSION"
+
+echo "Pull request: [$TRAVIS_PULL_REQUEST], Travis branch: [$TRAVIS_BRANCH]"
+# release only from master when no pull request build
+if [ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]
+then
+    echo "Uploading artifacts to bintray for version $BUILD_VERSION"
+    ./gradlew -i bintrayUpload -Pversion=$BUILD_VERSION
+fi
\ No newline at end of file