You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by rh...@apache.org on 2019/10/04 13:54:03 UTC

[geode] branch develop updated: GEODE-7241 Refactor publish.gradle into -java and -war types (#4091)

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

rhoughton pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new 7597643  GEODE-7241 Refactor publish.gradle into -java and -war types (#4091)
7597643 is described below

commit 7597643ab01c69038b18d4796077cfacc1dcb8f2
Author: Robert Houghton <rh...@pivotal.io>
AuthorDate: Fri Oct 4 06:53:42 2019 -0700

    GEODE-7241 Refactor publish.gradle into -java and -war types (#4091)
    
    Allows publication of Jar or War artifacts via an `apply` statement.
    We then apply publish-war.gradle to our projects that build war
    artifacts (and that we want to publish) and publish-java.gradle to the
    jar libraries that we want to publish.
    
    * Refactor publish.gradle into -java and -war types
    * Use facets for test structures in geode-web-management
    
    Replaces custom configuration and source-sets with the facets plug in, like we do elsewhere int he project
    * geode-pulse is a WAR not a JAR. Fix its publication and expected pom.
    * enable jar in build for test linking
---
 boms/geode-client-bom/build.gradle                 |   2 +-
 geode-assembly/build.gradle                        |   2 +-
 geode-common/build.gradle                          |   2 +-
 geode-concurrency-test/build.gradle                |   2 +-
 geode-connectors/build.gradle                      |   2 +-
 geode-core/build.gradle                            |   2 +-
 geode-cq/build.gradle                              |   2 +-
 geode-dunit/build.gradle                           |   2 +-
 geode-experimental-driver/build.gradle             |   2 +-
 geode-http-service/build.gradle                    |   2 +-
 geode-junit/build.gradle                           |   2 +-
 geode-log4j/build.gradle                           |   2 +-
 geode-logging/build.gradle                         |   2 +-
 geode-lucene/build.gradle                          |   2 +-
 geode-management/build.gradle                      |   2 +-
 geode-memcached/build.gradle                       |   2 +-
 geode-old-client-support/build.gradle              |   2 +-
 geode-protobuf-messages/build.gradle               |   2 +-
 geode-protobuf/build.gradle                        |   2 +-
 geode-pulse/build.gradle                           |   8 +-
 geode-pulse/src/test/resources/expected-pom.xml    | 197 +--------------------
 geode-rebalancer/build.gradle                      |   2 +-
 geode-redis/build.gradle                           |   2 +-
 geode-serialization/build.gradle                   |   2 +-
 geode-unsafe/build.gradle                          |   2 +-
 geode-wan/build.gradle                             |   2 +-
 geode-web-api/build.gradle                         |   5 +-
 geode-web-api/src/test/resources/expected-pom.xml  | 163 +----------------
 geode-web-management/build.gradle                  |  20 +--
 .../src/test/resources/expected-pom.xml            | 167 +----------------
 geode-web/build.gradle                             |   4 +-
 geode-web/src/test/resources/expected-pom.xml      |  70 +-------
 gradle/{publish.gradle => publish-common.gradle}   |   4 -
 .../build.gradle => gradle/publish-java.gradle     |  17 +-
 .../build.gradle => gradle/publish-war.gradle      |  17 +-
 35 files changed, 68 insertions(+), 652 deletions(-)

diff --git a/boms/geode-client-bom/build.gradle b/boms/geode-client-bom/build.gradle
index 3a6a1a1..e89fdfa 100644
--- a/boms/geode-client-bom/build.gradle
+++ b/boms/geode-client-bom/build.gradle
@@ -18,7 +18,7 @@
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
 apply plugin: "io.spring.dependency-management"
-apply from: "${project.projectDir}/../../gradle/publish.gradle"
+apply from: "${project.projectDir}/../../gradle/publish-common.gradle"
 
 jar.enabled = false
 
diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle
index d12fe24..0919541 100755
--- a/geode-assembly/build.gradle
+++ b/geode-assembly/build.gradle
@@ -67,7 +67,7 @@ evaluationDependsOnChildren()
 }
 
 apply plugin: 'distribution'
-apply from: "${rootDir}/${scriptDir}/publish.gradle"
+apply from: "${rootDir}/${scriptDir}/publish-common.gradle"
 
 
 // This subproject's 'publication' is not a jar and should not be constrained to match versions
diff --git a/geode-common/build.gradle b/geode-common/build.gradle
index 4c39a58..c083f01 100755
--- a/geode-common/build.gradle
+++ b/geode-common/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   compile(platform(project(':boms:geode-all-bom')))
diff --git a/geode-concurrency-test/build.gradle b/geode-concurrency-test/build.gradle
index d29d5e4..4334e68 100644
--- a/geode-concurrency-test/build.gradle
+++ b/geode-concurrency-test/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   compile(platform(project(':boms:geode-all-bom')))
diff --git a/geode-connectors/build.gradle b/geode-connectors/build.gradle
index 03fcd21..384fa3d 100644
--- a/geode-connectors/build.gradle
+++ b/geode-connectors/build.gradle
@@ -26,7 +26,7 @@ repositories {
   }
 }
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 configurations {
   //Configuration used to download mysql jar
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index 365767e..cb32f25 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -22,7 +22,7 @@ plugins {
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
 apply plugin: 'antlr'
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 apply from: "${project.projectDir}/../gradle/pmd.gradle"
 
 sourceSets {
diff --git a/geode-cq/build.gradle b/geode-cq/build.gradle
index e820537..b2cdd6d 100644
--- a/geode-cq/build.gradle
+++ b/geode-cq/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 
 dependencies {
diff --git a/geode-dunit/build.gradle b/geode-dunit/build.gradle
index 16a153b..5f6e97a 100755
--- a/geode-dunit/build.gradle
+++ b/geode-dunit/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 
 dependencies {
diff --git a/geode-experimental-driver/build.gradle b/geode-experimental-driver/build.gradle
index 4b9947e..6820bab 100644
--- a/geode-experimental-driver/build.gradle
+++ b/geode-experimental-driver/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 
 dependencies {
diff --git a/geode-http-service/build.gradle b/geode-http-service/build.gradle
index 87d0245..3aad67f 100755
--- a/geode-http-service/build.gradle
+++ b/geode-http-service/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   compile(platform(project(':boms:geode-all-bom')))
diff --git a/geode-junit/build.gradle b/geode-junit/build.gradle
index fca22ce..da6b0c5 100755
--- a/geode-junit/build.gradle
+++ b/geode-junit/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 
 dependencies {
diff --git a/geode-log4j/build.gradle b/geode-log4j/build.gradle
index f649711..ce110b2 100644
--- a/geode-log4j/build.gradle
+++ b/geode-log4j/build.gradle
@@ -19,7 +19,7 @@ plugins {
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
diff --git a/geode-logging/build.gradle b/geode-logging/build.gradle
index 927f6d3..7e42456 100644
--- a/geode-logging/build.gradle
+++ b/geode-logging/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
     compile(platform(project(':boms:geode-all-bom')))
diff --git a/geode-lucene/build.gradle b/geode-lucene/build.gradle
index 5f33777..91c4e30 100644
--- a/geode-lucene/build.gradle
+++ b/geode-lucene/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 
 dependencies {
diff --git a/geode-management/build.gradle b/geode-management/build.gradle
index d159a56..1853790 100755
--- a/geode-management/build.gradle
+++ b/geode-management/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   compile(platform(project(':boms:geode-all-bom')))
diff --git a/geode-memcached/build.gradle b/geode-memcached/build.gradle
index 73045f2..ec382b9 100644
--- a/geode-memcached/build.gradle
+++ b/geode-memcached/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   implementation(platform(project(':boms:geode-all-bom')))
diff --git a/geode-old-client-support/build.gradle b/geode-old-client-support/build.gradle
index 89ebb1d..1ceb25a 100644
--- a/geode-old-client-support/build.gradle
+++ b/geode-old-client-support/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 
 dependencies {
diff --git a/geode-protobuf-messages/build.gradle b/geode-protobuf-messages/build.gradle
index f0f9b5a..895fa6f 100644
--- a/geode-protobuf-messages/build.gradle
+++ b/geode-protobuf-messages/build.gradle
@@ -30,7 +30,7 @@ buildscript {
 
 apply plugin: 'com.google.protobuf'
 apply plugin: 'idea'
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
diff --git a/geode-protobuf/build.gradle b/geode-protobuf/build.gradle
index 419cbde..ea9d0c2 100644
--- a/geode-protobuf/build.gradle
+++ b/geode-protobuf/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 
 dependencies {
diff --git a/geode-pulse/build.gradle b/geode-pulse/build.gradle
index 42fc887..2909cd7 100644
--- a/geode-pulse/build.gradle
+++ b/geode-pulse/build.gradle
@@ -20,8 +20,9 @@ evaluationDependsOn(':geode-core')
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 apply plugin: 'war'
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-war.gradle"
 
+jar.enabled = true
 
 dependencies {
   compile(platform(project(':boms:geode-all-bom')))
@@ -31,7 +32,7 @@ dependencies {
   compile('org.springframework.security:spring-security-core')
   compile('javax.servlet:javax.servlet-api')
   compile('mx4j:mx4j') {
-    ext.optional = true 
+    ext.optional = true
   }
   compile('mx4j:mx4j-remote') {
     ext.optional = true
@@ -58,7 +59,7 @@ dependencies {
   compile('commons-digester:commons-digester')
   compile('org.apache.commons:commons-lang3')
   compile('org.springframework.ldap:spring-ldap-core')
-  
+
   compile('org.springframework.security:spring-security-config') {
     exclude module: 'aopalliance'
     exclude module: 'spring-expression'
@@ -169,6 +170,7 @@ artifacts {
 }
 
 war {
+  enabled = true
   duplicatesStrategy = DuplicatesStrategy.EXCLUDE
   classpath configurations.runtimeClasspath
 }
diff --git a/geode-pulse/src/test/resources/expected-pom.xml b/geode-pulse/src/test/resources/expected-pom.xml
index 5594712..b098c2a 100644
--- a/geode-pulse/src/test/resources/expected-pom.xml
+++ b/geode-pulse/src/test/resources/expected-pom.xml
@@ -20,6 +20,7 @@
   <groupId>org.apache.geode</groupId>
   <artifactId>geode-pulse</artifactId>
   <version>1.11.0-SNAPSHOT</version>
+  <packaging>war</packaging>
   <name>Apache Geode</name>
   <description>Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing</description>
   <url>http://geode.apache.org</url>
@@ -34,200 +35,4 @@
     <developerConnection>scm:git:https://github.com:apache/geode.git</developerConnection>
     <url>https://github.com/apache/geode</url>
   </scm>
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.geode</groupId>
-        <artifactId>geode-all-bom</artifactId>
-        <version>1.11.0-SNAPSHOT</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-  <dependencies>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-core</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>javax.servlet</groupId>
-      <artifactId>javax.servlet-api</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>mx4j</groupId>
-      <artifactId>mx4j</artifactId>
-      <scope>compile</scope>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>mx4j</groupId>
-      <artifactId>mx4j-remote</artifactId>
-      <scope>compile</scope>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-beans</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-jcl</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-beanutils</groupId>
-      <artifactId>commons-beanutils</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-digester</groupId>
-      <artifactId>commons-digester</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.ldap</groupId>
-      <artifactId>spring-ldap-core</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-config</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>spring-expression</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>aopalliance</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-ldap</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>spring-asm</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>spring-jdbc</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>spring-expression</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>aopalliance</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-web</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>spring-asm</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>spring-jdbc</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>spring-expression</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>aopalliance</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-context</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-web</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-tx</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-webmvc</artifactId>
-      <scope>runtime</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>aopalliance</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>aspectjweaver</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-expression</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-  </dependencies>
 </project>
diff --git a/geode-rebalancer/build.gradle b/geode-rebalancer/build.gradle
index 392b8b9..ace2859 100644
--- a/geode-rebalancer/build.gradle
+++ b/geode-rebalancer/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 
 dependencies {
diff --git a/geode-redis/build.gradle b/geode-redis/build.gradle
index 91cc582..dc1ec1c 100644
--- a/geode-redis/build.gradle
+++ b/geode-redis/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   compile(platform(project(':boms:geode-all-bom')))
diff --git a/geode-serialization/build.gradle b/geode-serialization/build.gradle
index 105df0f..5197f81 100755
--- a/geode-serialization/build.gradle
+++ b/geode-serialization/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   implementation(platform(project(':boms:geode-all-bom')))
diff --git a/geode-unsafe/build.gradle b/geode-unsafe/build.gradle
index c71921f..b93a9c3 100755
--- a/geode-unsafe/build.gradle
+++ b/geode-unsafe/build.gradle
@@ -20,7 +20,7 @@ plugins {
 }
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 dependencies {
   implementation(platform(project(':boms:geode-all-bom')))
diff --git a/geode-wan/build.gradle b/geode-wan/build.gradle
index 92f9b85..986a503 100644
--- a/geode-wan/build.gradle
+++ b/geode-wan/build.gradle
@@ -17,7 +17,7 @@
 
 apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-java.gradle"
 
 
 dependencies {
diff --git a/geode-web-api/build.gradle b/geode-web-api/build.gradle
index c79300c..b141a5e 100644
--- a/geode-web-api/build.gradle
+++ b/geode-web-api/build.gradle
@@ -19,8 +19,9 @@ apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
 apply plugin: 'war'
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-war.gradle"
 
+jar.enabled = false
 
 dependencies {
   compile(platform(project(':boms:geode-all-bom')))
@@ -98,9 +99,11 @@ sourceSets {
 }
 
 war {
+  enabled = true
   rootSpec.exclude("**/*commons-logging-*.jar")
   duplicatesStrategy = DuplicatesStrategy.EXCLUDE
   // this shouldn't be necessary but if it's not specified we're missing some of the jars
   // from the runtime classpath
   classpath configurations.runtimeClasspath
 }
+
diff --git a/geode-web-api/src/test/resources/expected-pom.xml b/geode-web-api/src/test/resources/expected-pom.xml
index 729822d..c052b8a 100644
--- a/geode-web-api/src/test/resources/expected-pom.xml
+++ b/geode-web-api/src/test/resources/expected-pom.xml
@@ -20,6 +20,7 @@
   <groupId>org.apache.geode</groupId>
   <artifactId>geode-web-api</artifactId>
   <version>1.11.0-SNAPSHOT</version>
+  <packaging>war</packaging>
   <name>Apache Geode</name>
   <description>Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing</description>
   <url>http://geode.apache.org</url>
@@ -34,166 +35,4 @@
     <developerConnection>scm:git:https://github.com:apache/geode.git</developerConnection>
     <url>https://github.com/apache/geode</url>
   </scm>
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.geode</groupId>
-        <artifactId>geode-all-bom</artifactId>
-        <version>1.11.0-SNAPSHOT</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-fileupload</groupId>
-      <artifactId>commons-fileupload</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>commons-io</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.module</groupId>
-      <artifactId>jackson-module-scala_2.10</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>io.springfox</groupId>
-      <artifactId>springfox-swagger2</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>slf4j-api</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>io.springfox</groupId>
-      <artifactId>springfox-swagger-ui</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>slf4j-api</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-beans</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-core</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-web</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-config</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-web</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-webmvc</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.hateoas</groupId>
-      <artifactId>spring-hateoas</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>slf4j-api</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>objenesis</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>spring-core</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>commons-logging</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>aopalliance</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-aspects</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>aopalliance</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>aspectjweaver</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-oxm</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>spring-beans</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>spring-core</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>commons-logging</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-  </dependencies>
 </project>
diff --git a/geode-web-management/build.gradle b/geode-web-management/build.gradle
index 40ec4b7..7013247 100644
--- a/geode-web-management/build.gradle
+++ b/geode-web-management/build.gradle
@@ -17,10 +17,16 @@ apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
 apply plugin: 'war'
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-war.gradle"
 
-configurations {
-  commonTestCompile
+jar.enabled = false
+
+apply plugin: 'nebula.facet'
+facets {
+  commonTest {
+    testTaskName = 'commonTest'
+    includeInCheckLifecycle = false
+  }
 }
 
 sourceSets {
@@ -35,13 +41,6 @@ sourceSets {
       srcDir "${projectDir}/src/main/webapp"
     }
   }
-
-  commonTest {
-    java {
-      srcDir "${projectDir}/src/commonTest/java"
-    }
-    compileClasspath = configurations.commonTestCompile
-  }
 }
 
 dependencies {
@@ -156,6 +155,7 @@ dependencies {
 }
 
 war {
+  enabled = true
   rootSpec.exclude("**/*commons-logging-*.jar")
   duplicatesStrategy = DuplicatesStrategy.EXCLUDE
   // this shouldn't be necessary but if it's not specified we're missing some of the jars
diff --git a/geode-web-management/src/test/resources/expected-pom.xml b/geode-web-management/src/test/resources/expected-pom.xml
index 4e38bb4..0cd1f68 100644
--- a/geode-web-management/src/test/resources/expected-pom.xml
+++ b/geode-web-management/src/test/resources/expected-pom.xml
@@ -20,6 +20,7 @@
   <groupId>org.apache.geode</groupId>
   <artifactId>geode-web-management</artifactId>
   <version>1.11.0-SNAPSHOT</version>
+  <packaging>war</packaging>
   <name>Apache Geode</name>
   <description>Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing</description>
   <url>http://geode.apache.org</url>
@@ -34,170 +35,4 @@
     <developerConnection>scm:git:https://github.com:apache/geode.git</developerConnection>
     <url>https://github.com/apache/geode</url>
   </scm>
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.geode</groupId>
-        <artifactId>geode-all-bom</artifactId>
-        <version>1.11.0-SNAPSHOT</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-fileupload</groupId>
-      <artifactId>commons-fileupload</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>commons-io</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>jackson-annotations</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>io.springfox</groupId>
-      <artifactId>springfox-swagger2</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>slf4j-api</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>jackson-annotations</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>swagger-annotations</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>io.springfox</groupId>
-      <artifactId>springfox-swagger-ui</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>slf4j-api</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-beans</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-core</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-web</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security</groupId>
-      <artifactId>spring-security-config</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-web</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-webmvc</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.hateoas</groupId>
-      <artifactId>spring-hateoas</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>slf4j-api</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>objenesis</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>spring-core</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>commons-logging</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>aopalliance</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-aspects</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>aopalliance</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>aspectjweaver</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-oxm</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>spring-beans</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>spring-core</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>commons-logging</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-  </dependencies>
 </project>
diff --git a/geode-web/build.gradle b/geode-web/build.gradle
index 7b72a6f..a02d491 100644
--- a/geode-web/build.gradle
+++ b/geode-web/build.gradle
@@ -19,8 +19,9 @@ apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
 
 apply plugin: 'war'
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/publish-war.gradle"
 
+jar.enabled = false
 
 dependencies {
   api(platform(project(':boms:geode-all-bom')))
@@ -71,5 +72,6 @@ distributedTest.dependsOn(war)
 integrationTest.dependsOn(war)
 
 war {
+  enabled = true
   duplicatesStrategy = DuplicatesStrategy.EXCLUDE
 }
diff --git a/geode-web/src/test/resources/expected-pom.xml b/geode-web/src/test/resources/expected-pom.xml
index c1af8bb..98cf01e 100644
--- a/geode-web/src/test/resources/expected-pom.xml
+++ b/geode-web/src/test/resources/expected-pom.xml
@@ -20,6 +20,7 @@
   <groupId>org.apache.geode</groupId>
   <artifactId>geode-web</artifactId>
   <version>1.11.0-SNAPSHOT</version>
+  <packaging>war</packaging>
   <name>Apache Geode</name>
   <description>Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing</description>
   <url>http://geode.apache.org</url>
@@ -34,73 +35,4 @@
     <developerConnection>scm:git:https://github.com:apache/geode.git</developerConnection>
     <url>https://github.com/apache/geode</url>
   </scm>
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.geode</groupId>
-        <artifactId>geode-all-bom</artifactId>
-        <version>1.11.0-SNAPSHOT</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.geode</groupId>
-      <artifactId>geode-logging</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.geode</groupId>
-      <artifactId>geode-core</artifactId>
-      <scope>compile</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>spring-core</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-        <exclusion>
-          <artifactId>spring-web</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>javax.servlet</groupId>
-      <artifactId>javax.servlet-api</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-webmvc</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-aspects</artifactId>
-      <scope>runtime</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>aspectjweaver</artifactId>
-          <groupId>*</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-oxm</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-fileupload</groupId>
-      <artifactId>commons-fileupload</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-  </dependencies>
 </project>
diff --git a/gradle/publish.gradle b/gradle/publish-common.gradle
similarity index 97%
rename from gradle/publish.gradle
rename to gradle/publish-common.gradle
index e76a523..6d1dab9 100644
--- a/gradle/publish.gradle
+++ b/gradle/publish-common.gradle
@@ -15,12 +15,10 @@
  * limitations under the License.
  */
 
-
 apply plugin: 'maven-publish'
 apply plugin: 'signing'
 
 // The published bom will constrain versions within geode of any subproject with this property set.
-// This is normally set in publish.gradle, but since we do not consume that file, we opt in directly.
 project.ext.set('constrainVersionInBom', true)
 
 if (project.name != 'geode-assembly') {
@@ -56,8 +54,6 @@ publishing {
   publications {
     maven(MavenPublication) {
       if (project.name != 'geode-assembly') {
-        from components.java
-
         // use the (possibly empty) Jar tasks above for sources and javadoc
         artifact sourcesJar
         artifact javadocJar
diff --git a/geode-common/build.gradle b/gradle/publish-java.gradle
old mode 100755
new mode 100644
similarity index 70%
copy from geode-common/build.gradle
copy to gradle/publish-java.gradle
index 4c39a58..4abecae
--- a/geode-common/build.gradle
+++ b/gradle/publish-java.gradle
@@ -15,13 +15,14 @@
  * limitations under the License.
  */
 
-apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
+apply from: "${rootDir}/gradle/publish-common.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
-
-dependencies {
-  compile(platform(project(':boms:geode-all-bom')))
-  compile('com.fasterxml.jackson.core:jackson-databind')
-  testCompile('junit:junit')
-  testCompile('org.assertj:assertj-core')
+publishing {
+  publications {
+    maven(MavenPublication) {
+      if (project.name != 'geode-assembly') {
+        from components.java
+      }
+    }
+  }
 }
diff --git a/geode-common/build.gradle b/gradle/publish-war.gradle
old mode 100755
new mode 100644
similarity index 70%
copy from geode-common/build.gradle
copy to gradle/publish-war.gradle
index 4c39a58..e5a8283
--- a/geode-common/build.gradle
+++ b/gradle/publish-war.gradle
@@ -15,13 +15,14 @@
  * limitations under the License.
  */
 
-apply from: "${rootDir}/${scriptDir}/standard-subproject-configuration.gradle"
+apply from: "${rootDir}/gradle/publish-common.gradle"
 
-apply from: "${project.projectDir}/../gradle/publish.gradle"
-
-dependencies {
-  compile(platform(project(':boms:geode-all-bom')))
-  compile('com.fasterxml.jackson.core:jackson-databind')
-  testCompile('junit:junit')
-  testCompile('org.assertj:assertj-core')
+publishing {
+  publications {
+    maven(MavenPublication) {
+      if (project.name != 'geode-assembly') {
+        from components.web
+      }
+    }
+  }
 }