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/01/23 18:12:12 UTC

[geode] branch develop updated: GEODE-6302 Improve checkPom check and reporting (#3107)

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 b393482  GEODE-6302 Improve checkPom check and reporting (#3107)
b393482 is described below

commit b393482e09c77853560661a289a9785449146a1f
Author: Robert Houghton <rh...@pivotal.io>
AuthorDate: Wed Jan 23 10:12:01 2019 -0800

    GEODE-6302 Improve checkPom check and reporting (#3107)
    
    * Verify versions exist only in <dependencyManagement>
    * Check pom <groupId>
    * Check pom <artifactId>
    * Check all values of <dependencies>
    * Check all values of <dependencyManagement>
    * Improved task caching
    * Safeguard against regression in expected poms.
    * Correct those poms which did not adhere to the above.
    * Once fully moved to BOMs for dependency tracking, some further changes to the <dependencyManagment> compare will be needed
---
 .../src/test/resources/expected-pom.xml            |  20 +
 geode-assembly/build.gradle                        |   4 +-
 geode-assembly/src/test/resources/expected-pom.xml |  20 +
 geode-common/src/test/resources/expected-pom.xml   |  20 +
 .../src/test/resources/expected-pom.xml            |  20 +
 .../src/test/resources/expected-pom.xml            |  22 +-
 geode-core/build.gradle                            |   2 +-
 geode-core/src/test/resources/expected-pom.xml     |  24 +-
 geode-cq/src/test/resources/expected-pom.xml       |  21 +-
 geode-dunit/src/test/resources/expected-pom.xml    |  23 +-
 .../src/test/resources/expected-pom.xml            |  22 +-
 geode-json/src/test/resources/expected-pom.xml     |  20 +
 geode-junit/src/test/resources/expected-pom.xml    |  20 +
 geode-lucene/src/test/resources/expected-pom.xml   |  22 +-
 .../src/test/resources/expected-pom.xml            |  25 +-
 .../src/test/resources/expected-pom.xml            |  21 +-
 geode-protobuf-messages/build.gradle               |   3 +-
 .../src/test/resources/expected-pom.xml            | 695 ++++++++++++++++++++-
 geode-protobuf/build.gradle                        |   2 +-
 geode-protobuf/src/test/resources/expected-pom.xml |  24 +-
 geode-pulse/src/test/resources/expected-pom.xml    |  20 +
 geode-rebalancer/build.gradle                      |   1 -
 .../src/test/resources/expected-pom.xml            |  22 +-
 geode-wan/src/test/resources/expected-pom.xml      |  21 +-
 geode-web-api/src/test/resources/expected-pom.xml  |  20 +
 .../src/test/resources/expected-pom.xml            |  37 +-
 geode-web/src/test/resources/expected-pom.xml      |  20 +
 gradle.properties                                  |   2 +-
 gradle/geode-dependency-management.gradle          |   6 +-
 gradle/publish.gradle                              | 178 ++++--
 30 files changed, 1255 insertions(+), 102 deletions(-)

diff --git a/boms/geode-all-bom/src/test/resources/expected-pom.xml b/boms/geode-all-bom/src/test/resources/expected-pom.xml
index 79754ad..d3f81a9 100644
--- a/boms/geode-all-bom/src/test/resources/expected-pom.xml
+++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml
@@ -113,6 +113,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -383,6 +388,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -418,6 +428,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -693,6 +708,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle
index 78f43c5..37740d3 100755
--- a/geode-assembly/build.gradle
+++ b/geode-assembly/build.gradle
@@ -27,11 +27,13 @@ apply from: "${project.projectDir}/../gradle/publish.gradle"
 // disable artifact generation for this project
 jar.enabled = false
 
+project.ext {artifactName = 'apache-geode'}
+
 publishing {
   publications {
     maven(MavenPublication) {
       afterEvaluate {
-        artifactId = 'apache-geode'
+        artifactId = artifactName
 
         artifacts = []
 
diff --git a/geode-assembly/src/test/resources/expected-pom.xml b/geode-assembly/src/test/resources/expected-pom.xml
index 54828a9..af1f45a 100644
--- a/geode-assembly/src/test/resources/expected-pom.xml
+++ b/geode-assembly/src/test/resources/expected-pom.xml
@@ -113,6 +113,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -383,6 +388,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -418,6 +428,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -693,6 +708,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-common/src/test/resources/expected-pom.xml b/geode-common/src/test/resources/expected-pom.xml
index 667f33a..877404c 100644
--- a/geode-common/src/test/resources/expected-pom.xml
+++ b/geode-common/src/test/resources/expected-pom.xml
@@ -112,6 +112,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -382,6 +387,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -417,6 +427,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -692,6 +707,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-concurrency-test/src/test/resources/expected-pom.xml b/geode-concurrency-test/src/test/resources/expected-pom.xml
index dccee02..4d1d586 100644
--- a/geode-concurrency-test/src/test/resources/expected-pom.xml
+++ b/geode-concurrency-test/src/test/resources/expected-pom.xml
@@ -124,6 +124,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -394,6 +399,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -429,6 +439,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -704,6 +719,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-connectors/src/test/resources/expected-pom.xml b/geode-connectors/src/test/resources/expected-pom.xml
index 0d9fad4..dbb22a9 100644
--- a/geode-connectors/src/test/resources/expected-pom.xml
+++ b/geode-connectors/src/test/resources/expected-pom.xml
@@ -38,13 +38,11 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-common</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-core</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
@@ -188,6 +186,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -458,6 +461,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -493,6 +501,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -768,6 +781,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index a9d99b8..413f242 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -226,7 +226,7 @@ dependencies {
   runtimeOnly('org.apache.logging.log4j:log4j-jul') {
     ext.optional = true
   }
-  compile('org.eclipse.jetty:jetty-webapp:' + project.'jetty.version') {
+  compile('org.eclipse.jetty:jetty-webapp') {
     ext.optional = true
   }
   compileOnly('org.springframework:spring-webmvc') {
diff --git a/geode-core/src/test/resources/expected-pom.xml b/geode-core/src/test/resources/expected-pom.xml
index 89ce669..48d7baa 100644
--- a/geode-core/src/test/resources/expected-pom.xml
+++ b/geode-core/src/test/resources/expected-pom.xml
@@ -198,7 +198,6 @@
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-webapp</artifactId>
-      <version>9.4.12.v20180830</version>
       <scope>compile</scope>
       <optional>true</optional>
     </dependency>
@@ -267,19 +266,16 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-common</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-json</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-management</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
@@ -396,6 +392,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -666,6 +667,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -701,6 +707,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -976,6 +987,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-cq/src/test/resources/expected-pom.xml b/geode-cq/src/test/resources/expected-pom.xml
index e75ffb5..936fbc3 100644
--- a/geode-cq/src/test/resources/expected-pom.xml
+++ b/geode-cq/src/test/resources/expected-pom.xml
@@ -38,7 +38,6 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-core</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
@@ -125,6 +124,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -395,6 +399,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -430,6 +439,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -705,6 +719,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-dunit/src/test/resources/expected-pom.xml b/geode-dunit/src/test/resources/expected-pom.xml
index 11d6b7b..8928227 100644
--- a/geode-dunit/src/test/resources/expected-pom.xml
+++ b/geode-dunit/src/test/resources/expected-pom.xml
@@ -38,13 +38,11 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-core</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-junit</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
       <exclusions>
         <exclusion>
@@ -56,7 +54,6 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-json</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
@@ -241,6 +238,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -511,6 +513,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -546,6 +553,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -821,6 +833,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-experimental-driver/src/test/resources/expected-pom.xml b/geode-experimental-driver/src/test/resources/expected-pom.xml
index 6a03d4b..9b64c83 100644
--- a/geode-experimental-driver/src/test/resources/expected-pom.xml
+++ b/geode-experimental-driver/src/test/resources/expected-pom.xml
@@ -38,13 +38,11 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-common</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-protobuf-messages</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
@@ -131,6 +129,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -401,6 +404,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -436,6 +444,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -711,6 +724,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-json/src/test/resources/expected-pom.xml b/geode-json/src/test/resources/expected-pom.xml
index 6fe9986..937e117 100644
--- a/geode-json/src/test/resources/expected-pom.xml
+++ b/geode-json/src/test/resources/expected-pom.xml
@@ -112,6 +112,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -382,6 +387,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -417,6 +427,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -692,6 +707,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-junit/src/test/resources/expected-pom.xml b/geode-junit/src/test/resources/expected-pom.xml
index edaea63..d7f0bb1 100644
--- a/geode-junit/src/test/resources/expected-pom.xml
+++ b/geode-junit/src/test/resources/expected-pom.xml
@@ -202,6 +202,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -472,6 +477,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -507,6 +517,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -782,6 +797,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-lucene/src/test/resources/expected-pom.xml b/geode-lucene/src/test/resources/expected-pom.xml
index e8bb3cb..2ddd64d 100644
--- a/geode-lucene/src/test/resources/expected-pom.xml
+++ b/geode-lucene/src/test/resources/expected-pom.xml
@@ -90,13 +90,11 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-core</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-common</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
@@ -199,6 +197,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -469,6 +472,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -504,6 +512,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -779,6 +792,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-management/src/test/resources/expected-pom.xml b/geode-management/src/test/resources/expected-pom.xml
index ef3939a..207b8cc 100644
--- a/geode-management/src/test/resources/expected-pom.xml
+++ b/geode-management/src/test/resources/expected-pom.xml
@@ -134,6 +134,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -404,6 +409,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -439,6 +449,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -454,11 +469,6 @@
         <version>6.6.2</version>
       </dependency>
       <dependency>
-        <groupId>org.apache.geode</groupId>
-        <artifactId>geode-management</artifactId>
-        <version>1.9.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
         <version>1.7.25</version>
@@ -719,6 +729,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-old-client-support/src/test/resources/expected-pom.xml b/geode-old-client-support/src/test/resources/expected-pom.xml
index 525f0e3..3f8044b 100644
--- a/geode-old-client-support/src/test/resources/expected-pom.xml
+++ b/geode-old-client-support/src/test/resources/expected-pom.xml
@@ -38,7 +38,6 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-core</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
   </dependencies>
@@ -120,6 +119,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -390,6 +394,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -425,6 +434,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -700,6 +714,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-protobuf-messages/build.gradle b/geode-protobuf-messages/build.gradle
index 31dd020..28df495 100644
--- a/geode-protobuf-messages/build.gradle
+++ b/geode-protobuf-messages/build.gradle
@@ -18,6 +18,7 @@
 apply plugin: 'com.google.protobuf'
 apply plugin: 'idea'
 apply from: "${project.projectDir}/../gradle/publish.gradle"
+apply from: "${project.projectDir}/../gradle/geode-dependency-management.gradle"
 
 
 buildscript {
@@ -30,7 +31,7 @@ buildscript {
 }
 
 dependencies {
-  compile('com.google.protobuf:protobuf-java:' + project.'protobuf-java.version')
+  compile('com.google.protobuf:protobuf-java')
 }
 
 protobuf {
diff --git a/geode-protobuf-messages/src/test/resources/expected-pom.xml b/geode-protobuf-messages/src/test/resources/expected-pom.xml
index f417da9..b5fd2aa 100644
--- a/geode-protobuf-messages/src/test/resources/expected-pom.xml
+++ b/geode-protobuf-messages/src/test/resources/expected-pom.xml
@@ -38,8 +38,701 @@
     <dependency>
       <groupId>com.google.protobuf</groupId>
       <artifactId>protobuf-java</artifactId>
-      <version>3.6.1</version>
       <scope>compile</scope>
     </dependency>
   </dependencies>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.powermock</groupId>
+        <artifactId>powermock-core</artifactId>
+        <version>2.0.0-beta.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-wan</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.assertj</groupId>
+        <artifactId>assertj-core</artifactId>
+        <version>3.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>mx4j</groupId>
+        <artifactId>mx4j-tools</artifactId>
+        <version>3.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.palantir.docker.compose</groupId>
+        <artifactId>docker-compose-rule-core</artifactId>
+        <version>0.31.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.pholser</groupId>
+        <artifactId>junit-quickcheck-generators</artifactId>
+        <version>0.8.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.lucene</groupId>
+        <artifactId>lucene-core</artifactId>
+        <version>6.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>redis.clients</groupId>
+        <artifactId>jedis</artifactId>
+        <version>2.9.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-chrome-driver</artifactId>
+        <version>3.13.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>hamcrest-core</artifactId>
+        <version>1.3</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-java</artifactId>
+        <version>3.6.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-core</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-configuration</groupId>
+        <artifactId>commons-configuration</artifactId>
+        <version>1.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-old-versions</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-test</artifactId>
+        <version>4.3.20.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>com.carrotsearch.randomizedtesting</groupId>
+        <artifactId>randomizedtesting-runner</artifactId>
+        <version>2.5.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.guava</groupId>
+        <artifactId>guava</artifactId>
+        <version>27.0-jre</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.cargo</groupId>
+        <artifactId>cargo-core-uberjar</artifactId>
+        <version>1.6.10</version>
+      </dependency>
+      <dependency>
+        <groupId>com.healthmarketscience.rmiio</groupId>
+        <artifactId>rmiio</artifactId>
+        <version>2.1.2</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.ejb</groupId>
+        <artifactId>ejb-api</artifactId>
+        <version>3.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.github.stephenc.findbugs</groupId>
+        <artifactId>findbugs-annotations</artifactId>
+        <version>1.3.9-1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-cq</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.annotation</groupId>
+        <artifactId>jsr250-api</artifactId>
+        <version>1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.xml.bind</groupId>
+        <artifactId>jaxb-api</artifactId>
+        <version>2.3.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>hamcrest-library</artifactId>
+        <version>1.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-experimental-driver</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-web</artifactId>
+        <version>4.2.8.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.powermock</groupId>
+        <artifactId>powermock-api-mockito2</artifactId>
+        <version>2.0.0-beta.5</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-beanutils</groupId>
+        <artifactId>commons-beanutils</artifactId>
+        <version>1.9.3</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.annotation</groupId>
+        <artifactId>javax.annotation-api</artifactId>
+        <version>1.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>net.sf.jopt-simple</groupId>
+        <artifactId>jopt-simple</artifactId>
+        <version>5.0.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jgroups</groupId>
+        <artifactId>jgroups</artifactId>
+        <version>3.6.14.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-core</artifactId>
+        <version>4.3.20.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-modeler</groupId>
+        <artifactId>commons-modeler</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-connectors</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jul</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.shell</groupId>
+        <artifactId>spring-shell</artifactId>
+        <version>1.2.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-collections</groupId>
+        <artifactId>commons-collections</artifactId>
+        <version>3.2.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>hamcrest-all</artifactId>
+        <version>1.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-junit</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.12</version>
+      </dependency>
+      <dependency>
+        <groupId>com.sun.activation</groupId>
+        <artifactId>javax.activation</artifactId>
+        <version>1.2.0</version>
+      </dependency>
+      <dependency>
+        <groupId>io.springfox</groupId>
+        <artifactId>springfox-swagger-ui</artifactId>
+        <version>2.9.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-rebalancer</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.postgresql</groupId>
+        <artifactId>postgresql</artifactId>
+        <version>42.2.2</version>
+      </dependency>
+      <dependency>
+        <groupId>net.java.dev.jna</groupId>
+        <artifactId>jna</artifactId>
+        <version>4.1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>it.unimi.dsi</groupId>
+        <artifactId>fastutil</artifactId>
+        <version>8.2.2</version>
+      </dependency>
+      <dependency>
+        <groupId>io.springfox</groupId>
+        <artifactId>springfox-swagger2</artifactId>
+        <version>2.9.2</version>
+      </dependency>
+      <dependency>
+        <groupId>com.github.davidmoten</groupId>
+        <artifactId>geo</artifactId>
+        <version>0.7.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-webmvc</artifactId>
+        <version>4.3.20.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-old-client-support</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ldap</groupId>
+        <artifactId>spring-ldap-core</artifactId>
+        <version>2.3.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpcore</artifactId>
+        <version>4.4.10</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-scala_2.10</artifactId>
+        <version>2.9.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.lucene</groupId>
+        <artifactId>lucene-test-framework</artifactId>
+        <version>6.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>net.spy</groupId>
+        <artifactId>spymemcached</artifactId>
+        <version>2.12.2</version>
+      </dependency>
+      <dependency>
+        <groupId>mx4j</groupId>
+        <artifactId>mx4j</artifactId>
+        <version>3.0.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-context</artifactId>
+        <version>4.3.20.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>io.github.classgraph</groupId>
+        <artifactId>classgraph</artifactId>
+        <version>4.0.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpclient</artifactId>
+        <version>4.5.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jcl</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-lang3</artifactId>
+        <version>3.8.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-beans</artifactId>
+        <version>4.3.20.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-api</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mortbay.jetty</groupId>
+        <artifactId>servlet-api</artifactId>
+        <version>3.0.20100224</version>
+      </dependency>
+      <dependency>
+        <groupId>org.fusesource.jansi</groupId>
+        <artifactId>jansi</artifactId>
+        <version>1.17.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-core</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-web</artifactId>
+        <version>4.3.20.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>pl.pragmatists</groupId>
+        <artifactId>JUnitParams</artifactId>
+        <version>1.1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.servlet</groupId>
+        <artifactId>javax.servlet-api</artifactId>
+        <version>3.1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.sun.xml.bind</groupId>
+        <artifactId>jaxb-impl</artifactId>
+        <version>2.3.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.bouncycastle</groupId>
+        <artifactId>bcpkix-jdk15on</artifactId>
+        <version>1.60</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.hateoas</groupId>
+        <artifactId>spring-hateoas</artifactId>
+        <version>0.25.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-validator</groupId>
+        <artifactId>commons-validator</artifactId>
+        <version>1.6</version>
+      </dependency>
+      <dependency>
+        <groupId>cglib</groupId>
+        <artifactId>cglib</artifactId>
+        <version>3.2.9</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-pulse</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>com.mockrunner</groupId>
+        <artifactId>mockrunner-servlet</artifactId>
+        <version>1.1.2</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-all</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.lucene</groupId>
+        <artifactId>lucene-queryparser</artifactId>
+        <version>6.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-core</artifactId>
+        <version>4.2.8.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-test</artifactId>
+        <version>4.2.8.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-aspects</artifactId>
+        <version>4.3.20.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.mail</groupId>
+        <artifactId>javax.mail-api</artifactId>
+        <version>1.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.httpunit</groupId>
+        <artifactId>httpunit</artifactId>
+        <version>1.7.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-support</artifactId>
+        <version>3.13.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.jayway.jsonpath</groupId>
+        <artifactId>json-path</artifactId>
+        <version>2.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-dunit</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j-impl</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-config</artifactId>
+        <version>4.2.8.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-oxm</artifactId>
+        <version>4.3.20.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>com.sun.istack</groupId>
+        <artifactId>istack-commons-runtime</artifactId>
+        <version>2.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>apache-geode</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-protobuf-messages</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>com.jayway.jsonpath</groupId>
+        <artifactId>json-path-assert</artifactId>
+        <version>2.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-logging</groupId>
+        <artifactId>commons-logging</artifactId>
+        <version>1.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-common</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-json</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-annotations</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>mx4j</groupId>
+        <artifactId>mx4j-remote</artifactId>
+        <version>3.0.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>com.github.stefanbirkner</groupId>
+        <artifactId>system-rules</artifactId>
+        <version>1.19.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>javax.persistence</artifactId>
+        <version>2.2.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-remote-driver</artifactId>
+        <version>3.13.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.lucene</groupId>
+        <artifactId>lucene-analyzers-phonetic</artifactId>
+        <version>6.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.derby</groupId>
+        <artifactId>derby</artifactId>
+        <version>10.14.2.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-ldap</artifactId>
+        <version>4.2.8.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>mysql</groupId>
+        <artifactId>mysql-connector-java</artifactId>
+        <version>5.1.46</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.lucene</groupId>
+        <artifactId>lucene-analyzers-common</artifactId>
+        <version>6.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.powermock</groupId>
+        <artifactId>powermock-module-junit4</artifactId>
+        <version>2.0.0-beta.5</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>2.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.resource</groupId>
+        <artifactId>javax.resource-api</artifactId>
+        <version>1.7.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-protobuf</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-tx</artifactId>
+        <version>4.3.20.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-api</artifactId>
+        <version>3.13.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-expression</artifactId>
+        <version>4.3.20.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.iq80.snappy</groupId>
+        <artifactId>snappy</artifactId>
+        <version>0.4</version>
+      </dependency>
+      <dependency>
+        <groupId>com.zaxxer</groupId>
+        <artifactId>HikariCP</artifactId>
+        <version>3.2.0</version>
+      </dependency>
+      <dependency>
+        <groupId>antlr</groupId>
+        <artifactId>antlr</artifactId>
+        <version>2.7.7</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-lucene</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.shiro</groupId>
+        <artifactId>shiro-core</artifactId>
+        <version>1.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-databind</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.palantir.docker.compose</groupId>
+        <artifactId>docker-compose-rule-junit4</artifactId>
+        <version>0.31.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.awaitility</groupId>
+        <artifactId>awaitility</artifactId>
+        <version>3.1.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+        <version>2.23.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.skyscreamer</groupId>
+        <artifactId>jsonassert</artifactId>
+        <version>1.5.0</version>
+      </dependency>
+      <dependency>
+        <groupId>xerces</groupId>
+        <artifactId>xercesImpl</artifactId>
+        <version>2.12.0</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-fileupload</groupId>
+        <artifactId>commons-fileupload</artifactId>
+        <version>1.3.3</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-digester</groupId>
+        <artifactId>commons-digester</artifactId>
+        <version>2.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>com.pholser</groupId>
+        <artifactId>junit-quickcheck-core</artifactId>
+        <version>0.8.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.bcel</groupId>
+        <artifactId>bcel</artifactId>
+        <version>6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-concurrency-test</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
 </project>
diff --git a/geode-protobuf/build.gradle b/geode-protobuf/build.gradle
index 33601e0..636c0dd 100644
--- a/geode-protobuf/build.gradle
+++ b/geode-protobuf/build.gradle
@@ -43,7 +43,7 @@ dependencies {
   }
   distributedTestCompile(project(':geode-protobuf:geode-protobuf-test'))
 
-  compile('com.google.protobuf:protobuf-java:' + project.'protobuf-java.version')
+  compile('com.google.protobuf:protobuf-java')
   compile('org.apache.logging.log4j:log4j-api')
   compile('org.apache.shiro:shiro-core')
 
diff --git a/geode-protobuf/src/test/resources/expected-pom.xml b/geode-protobuf/src/test/resources/expected-pom.xml
index 7c86391..5b51e60 100644
--- a/geode-protobuf/src/test/resources/expected-pom.xml
+++ b/geode-protobuf/src/test/resources/expected-pom.xml
@@ -38,25 +38,21 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-common</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-core</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-protobuf-messages</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>com.google.protobuf</groupId>
       <artifactId>protobuf-java</artifactId>
-      <version>3.6.1</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
@@ -148,6 +144,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -418,6 +419,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -453,6 +459,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -728,6 +739,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-pulse/src/test/resources/expected-pom.xml b/geode-pulse/src/test/resources/expected-pom.xml
index 76e3664..6ab740d 100644
--- a/geode-pulse/src/test/resources/expected-pom.xml
+++ b/geode-pulse/src/test/resources/expected-pom.xml
@@ -302,6 +302,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -572,6 +577,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -607,6 +617,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -882,6 +897,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-rebalancer/build.gradle b/geode-rebalancer/build.gradle
index 26059a8..65a7765 100644
--- a/geode-rebalancer/build.gradle
+++ b/geode-rebalancer/build.gradle
@@ -22,7 +22,6 @@ apply from: "${project.projectDir}/../gradle/publish.gradle"
 dependencies {
   compile(project(':geode-common'))
   compile(project(':geode-core'))
-  testCompile(project(':geode-core'))
   integrationTestCompile(project(':geode-junit')) {
     exclude module: 'geode-core'
   }
diff --git a/geode-rebalancer/src/test/resources/expected-pom.xml b/geode-rebalancer/src/test/resources/expected-pom.xml
index 2f2f8e1..843dabf 100644
--- a/geode-rebalancer/src/test/resources/expected-pom.xml
+++ b/geode-rebalancer/src/test/resources/expected-pom.xml
@@ -38,13 +38,11 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-common</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-core</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
     <dependency>
@@ -150,6 +148,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -420,6 +423,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -455,6 +463,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -730,6 +743,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-wan/src/test/resources/expected-pom.xml b/geode-wan/src/test/resources/expected-pom.xml
index 3c58014..5e52d58 100644
--- a/geode-wan/src/test/resources/expected-pom.xml
+++ b/geode-wan/src/test/resources/expected-pom.xml
@@ -38,7 +38,6 @@
     <dependency>
       <groupId>org.apache.geode</groupId>
       <artifactId>geode-core</artifactId>
-      <version>1.9.0-SNAPSHOT</version>
       <scope>compile</scope>
     </dependency>
   </dependencies>
@@ -120,6 +119,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -390,6 +394,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -425,6 +434,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -700,6 +714,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-web-api/src/test/resources/expected-pom.xml b/geode-web-api/src/test/resources/expected-pom.xml
index 378d27d..c1e43ef 100644
--- a/geode-web-api/src/test/resources/expected-pom.xml
+++ b/geode-web-api/src/test/resources/expected-pom.xml
@@ -263,6 +263,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -533,6 +538,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -568,6 +578,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -843,6 +858,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-web-management/src/test/resources/expected-pom.xml b/geode-web-management/src/test/resources/expected-pom.xml
index bc51ae1..cfa9c57 100644
--- a/geode-web-management/src/test/resources/expected-pom.xml
+++ b/geode-web-management/src/test/resources/expected-pom.xml
@@ -1,19 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
@@ -33,7 +18,7 @@
   -->
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.geode</groupId>
-  <artifactId>geode-web-api</artifactId>
+  <artifactId>geode-web-management</artifactId>
   <version>1.9.0-SNAPSHOT</version>
   <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>
@@ -278,6 +263,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -548,6 +538,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -583,6 +578,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -858,6 +858,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/geode-web/src/test/resources/expected-pom.xml b/geode-web/src/test/resources/expected-pom.xml
index 91f2302..25617f2 100644
--- a/geode-web/src/test/resources/expected-pom.xml
+++ b/geode-web/src/test/resources/expected-pom.xml
@@ -182,6 +182,11 @@
         <version>4.3.20.RELEASE</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-web-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
         <version>2.5.0</version>
@@ -452,6 +457,11 @@
         <version>1.1.0</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-gradle-plugin</artifactId>
+        <version>0.8.6</version>
+      </dependency>
+      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
@@ -487,6 +497,11 @@
         <version>1.9.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.geode</groupId>
+        <artifactId>geode-management</artifactId>
+        <version>1.9.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.mockrunner</groupId>
         <artifactId>mockrunner-servlet</artifactId>
         <version>1.1.2</version>
@@ -762,6 +777,11 @@
         <version>2.1</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
         <groupId>com.pholser</groupId>
         <artifactId>junit-quickcheck-core</artifactId>
         <version>0.8.1</version>
diff --git a/gradle.properties b/gradle.properties
index 7104957..890ed13 100755
--- a/gradle.properties
+++ b/gradle.properties
@@ -43,7 +43,7 @@ scriptDir = gradle
 
 # Set the buildId to add build metadata that can be viewed from
 # gfsh or pulse (`gfsh version --full`). Can be set using
-# `gradle -PbuildId=N ...` where N is an artibitrary string.buildId = 0
+# `gradle -PbuildId=N ...` where N is an arbitrary string.buildId = 0
 buildId = 0
 
 productName = Apache Geode
diff --git a/gradle/geode-dependency-management.gradle b/gradle/geode-dependency-management.gradle
index ba68afe..b92eb08 100644
--- a/gradle/geode-dependency-management.gradle
+++ b/gradle/geode-dependency-management.gradle
@@ -58,6 +58,7 @@ class GeodeDependencyManagementPlugin implements Plugin<Project> {
           entry('geode-json')
           entry('geode-junit')
           entry('geode-lucene')
+          entry('geode-management')
           entry('geode-old-client-support')
           entry('geode-old-versions')
           entry('geode-protobuf')
@@ -67,14 +68,13 @@ class GeodeDependencyManagementPlugin implements Plugin<Project> {
           entry('geode-wan')
           entry('geode-web')
           entry('geode-web-api')
-          entry('geode-management')
+          entry('geode-web-management')
         }
 
         // informal, inter-group dependencySet
         dependency('com.sun.xml.bind:jaxb-impl:2.3.1')
         dependency('javax.xml.bind:jaxb-api:2.3.1')
 
-
         dependency(group: 'antlr', name: 'antlr', version: project.'antlr.version')
         dependency(group: 'cglib', name: 'cglib', version: project.'cglib.version')
         dependency(group: 'com.carrotsearch.randomizedtesting', name: 'randomizedtesting-runner', version: '2.5.0')
@@ -88,6 +88,7 @@ class GeodeDependencyManagementPlugin implements Plugin<Project> {
         dependency(group: 'com.github.stefanbirkner', name: 'system-rules', version: '1.19.0')
         dependency(group: 'com.github.stephenc.findbugs', name: 'findbugs-annotations', version: '1.3.9-1')
         dependency(group: 'com.google.guava', name: 'guava', version: '27.0-jre')
+        dependency(group: 'com.google.protobuf', name: 'protobuf-gradle-plugin', version: project.'protobuf-gradle-plugin.version')
         dependency(group: 'com.google.protobuf', name: 'protobuf-java', version: project.'protobuf-java.version')
         dependency(group: 'com.healthmarketscience.rmiio', name: 'rmiio', version: '2.1.2')
         dependencySet(group: 'com.jayway.jsonpath', version: '2.4.0') {
@@ -162,6 +163,7 @@ class GeodeDependencyManagementPlugin implements Plugin<Project> {
         dependency(group: 'org.awaitility', name: 'awaitility', version: '3.1.2')
         dependency(group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: '1.60')
         dependency(group: 'org.codehaus.cargo', name: 'cargo-core-uberjar', version: '1.6.10')
+        dependency(group: 'org.eclipse.jetty', name: 'jetty-webapp', version: project.'jetty.version')
         dependency(group: 'org.eclipse.persistence', name: 'javax.persistence', version: '2.2.1')
         dependency(group: 'org.fusesource.jansi', name: 'jansi', version: '1.17.1')
         dependencySet(group: 'org.hamcrest', version: '1.3') {
diff --git a/gradle/publish.gradle b/gradle/publish.gradle
index f201d07..9e4d735 100644
--- a/gradle/publish.gradle
+++ b/gradle/publish.gradle
@@ -29,6 +29,23 @@ task javadocJar(type: Jar) {
   classifier = 'javadoc'
 }
 
+def apacheLicense = '''
+  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.
+  '''
+
 publishing {
   publications {
     maven(MavenPublication) {
@@ -81,25 +98,22 @@ publishing {
         }
 
         withXml {
-          def elem = asElement()
-          def hdr = elem.ownerDocument().createComment(
-              '''
-  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.
-  ''')
-          elem.insertBefore(hdr, elem.firstChild)
+          // Geode dependency versions, as with all versions, are locked by the
+          // Spring dependency-management plugin.  We remove version specification as injected by
+          // project dependencies, e.g., compile project(':geode-core')
+          asNode().dependencies.dependency.each { dep ->
+            if (dep.toString().contains("org.apache.geode")) {
+              dep.remove(dep["version"])
+            }
+          }
+        }
+        afterEvaluate {
+          withXml {
+            def providerAsElement = asElement()
+            providerAsElement.insertBefore(
+                providerAsElement.ownerDocument().createComment(apacheLicense),
+                providerAsElement.firstChild)
+          }
         }
       }
     }
@@ -129,52 +143,116 @@ signing {
 task install(dependsOn: publishToMavenLocal) {}
 
 task('checkPom') {
+  // The XmlParser used below has a strange tendency to return lists of fields rather than the field
+  // you actually want. Be careful with that, future developer.
+  group 'verification'
   dependsOn('generatePomFileForMavenPublication')
-  description 'Checks the generated POM against an expected POM for dependency changes.'
+  description 'Checks the generated POM against an expected POM for dependency changes.' +
+      '  Ignores versions of Apache Geode dependencies.'
+  def expectedPomFile = sourceSets.test.resources.getSourceDirectories().first().toPath().resolve("expected-pom.xml")
+  def actualPomFile = generatePomFileForMavenPublication.outputs.files.first()
+  def thisOutput = project.buildDir.toPath().resolve('reports').resolve('checkPom.out')
+  inputs.files { [expectedPomFile, actualPomFile] }
+  outputs.files { thisOutput }
+
+  // We impose the following rules on our produced poms:
+  // * Versions are to be specified in the <dependencyManagement> block, not the <dependency> block
+  // * org.apache.geode versions will be ignored, in favor of this build's version
+  // * <dependency> blocks in produced POMs are as expected (ordering ignored)
+  // * <dependencyManagement> blocks in produced POMs are as expected (ordering ignored)
+  // * Published groupId = "org.apache.geode"
+  // * Published artifactId = project.artifactName if it exists, else project.name
+
+  def anyVersionDefinitionNotInDependencyManagement = { pom ->
+    pom.dependencies.dependency.any {
+      it.get("version")*.value() != []
+    }
+  }
+
+  def ignoreGeodeVersionInExpectedPom = { pom ->
+    pom.dependencyManagement.dependencies.dependency.each { dep ->
+      if (dep.toString().contains("org.apache.geode")) {
+        // since the project version is the source of truth, use that for comparison instead of
+        // whatever is stored in the expected pom file
+        dep.get("version")*.setValue([version])
+      }
+    }
+  }
+
+  def dependenciesBlocksMatch = { actual, expected ->
+    def actualTreeSet = actual.dependencies.dependency.collect {it.toString()}.toSet()
+    def expectedTreeSet = expected.dependencies.dependency.collect {it.toString()}.toSet()
+    actualTreeSet.equals(expectedTreeSet)
+  }
+
+  def groupMismatches = { pom ->
+    def groupId = pom["groupId"]
+    groupId*.value().flatten().any {
+      it != project.group
+    }
+  }
+
+  def artifactMismatches = { pom ->
+    // This work-around for 'artifactName' or 'project.name' is for geode-assembly, which re-names its output
+    def artifactId = pom["artifactId"]
+    artifactId*.value().flatten().any {
+      it != (project.findProperty('artifactName') ?: project.name)
+    }
+  }
 
   doLast {
     if (tasks.getByName("generatePomFileForMavenPublication").enabled) {
-      def expectedPomFile = sourceSets.test.resources.getSourceDirectories().first().toURI().resolve("expected-pom.xml")
       if (null == expectedPomFile) {
         throw new RuntimeException("expected-pom.xml not found.")
       }
       def expectedPom = new XmlParser().parse(expectedPomFile.toString())
-      def expectedDependencies = new TreeSet()
-      expectedPom.dependencies.dependency.each() {
-        def dep = it as String
-        if (dep.contains("org.apache.geode")) {
-          // since the project version is the source of truth, use that for comparison instead of
-          // whatever is stored in the expected pom file
-          dep = dep.replaceFirst("(.*\\[)(\\d+.\\d+.\\d+(-SNAPSHOT)?)(\\].*)", '$1' + version + '$4')
-        }
-        expectedDependencies.add(dep)
+      ignoreGeodeVersionInExpectedPom(expectedPom)
+
+      // Sanity checks against the expected pom.
+      def pathologicalArtifactId = artifactMismatches(expectedPom)
+      def pathologicalGroupId = groupMismatches(expectedPom)
+      def pathologicalVersionedDeps = anyVersionDefinitionNotInDependencyManagement(expectedPom)
+
+      if (pathologicalArtifactId || pathologicalGroupId || pathologicalVersionedDeps) {
+        def errorSummary = ""
+        errorSummary += pathologicalArtifactId ? "Expected POM header pathologically incorrect. Fix artifactId to match subproject name.\n" : ""
+        errorSummary += pathologicalGroupId ? "Expected POM header pathologically incorrect. Fix groupId to be 'org.apache.geode'.\n" : ""
+        errorSummary += pathologicalVersionedDeps ? "Expected POM should not declare dependency versions outside the Spring dependency-management constraints." : ""
+        throw new GradleException(errorSummary)
       }
 
-      def actualPomFile = generatePomFileForMavenPublication.outputs.files.first()
       def actualPom = new XmlParser().parse(actualPomFile)
-      def actualDependencies = new TreeSet()
-      actualPom.dependencies.dependency.each() {
-        actualDependencies.add(it as String)
-      }
 
-      if (actualDependencies != expectedDependencies) {
-        def newDependencies = new TreeSet(actualDependencies)
-        newDependencies.removeAll(expectedDependencies)
-        def removedDependencies = new TreeSet(expectedDependencies)
-        removedDependencies.removeAll(actualDependencies)
+      def badArtifactId = artifactMismatches(actualPom)
+      def badGroupId = groupMismatches(actualPom)
+      def improperlyVersionedDeps = anyVersionDefinitionNotInDependencyManagement(actualPom)
+      def depsMismatch = !dependenciesBlocksMatch(expectedPom, actualPom)
+      def versionMismatch = !dependenciesBlocksMatch(expectedPom.dependencyManagement, actualPom.dependencyManagement)
+
+      if (badArtifactId || badGroupId || improperlyVersionedDeps || depsMismatch || versionMismatch) {
+        def errorSummary = ""
+        errorSummary += badArtifactId ? "POM header information incorrect. Fix artifactId.\n" : ""
+        errorSummary += badGroupId ? "POM header information incorrect. Fix groupId.\n" : ""
+        errorSummary += improperlyVersionedDeps ? "Version definition should be in the <dependencyManagement> block only.\n" : ""
+        errorSummary += depsMismatch ? "<dependencies> blocks do not match.\n" : ""
+        errorSummary += versionMismatch ? "<dependencyManagement> blocks do not match.\n" : ""
 
-        def message =
-            "The ".concat(project.name).concat(" pom-default.xml has changed. Verify dependencies.")
-                .concat("\nWhen changes have been approved, copy :\n")
-                .concat(" cp ").concat(actualPomFile as String)
-                .concat(" ").concat(expectedPomFile as String)
-                .concat("\nRemoved Dependencies\n--------------\n")
-                .concat(String.join("\n", removedDependencies.each { dep -> dep.toString() }))
-                .concat("\n\nNew Dependencies\n--------------\n")
-                .concat(String.join("\n", newDependencies.each { dep -> dep.toString() }))
-                .concat("\n\n")
+        def message = """
+The POM produced by the ${project.name}'s publication task has changed from expectation.
+This is typically the result of changing or new dependencies, or dependency versions.
+The actual publication candidate POM can be found here: ${actualPomFile}
+The associated expected POM can be found here: ${expectedPomFile}
 
+${errorSummary}
+Please review the differences between the files indicated above.
+This task is meant to be comprehensive -- there should be no change in the POM for which you are not responsible.
+A possible exception is the listed Geode project dependencies, which are modified to reflect the current build's version.
 
+Once the differences in the above files are reviewed and confirmed to be intentional,
+  please update the expected POM file to reflect your changes.
+Alternatively, run './gradlew ${project.name}:updateExpectedPom' to replace the expected POM with the generated POM.
+"""
+        thisOutput.write(message)
         throw new RuntimeException(message)
       }
     }