diff --git a/Tez_DOAP.rdf b/Tez_DOAP.rdf
index 7e32221..25bc3f5 100644
--- a/Tez_DOAP.rdf
+++ b/Tez_DOAP.rdf
@@ -162,8 +162,8 @@
     </release>
     <repository>
       <GitRepository>
-        <location rdf:resource="https://git-wip-us.apache.org/repos/asf/tez.git"/>
-        <browse rdf:resource="https://git-wip-us.apache.org/repos/asf?p=tez.git"/>
+        <location rdf:resource="https://gitbox.apache.org/repos/asf/tez.git"/>
+        <browse rdf:resource="https://gitbox.apache.org/repos/asf/tez.git"/>
       </GitRepository>
     </repository>
     <maintainer>
diff --git a/docs/src/site/site.xml b/docs/src/site/site.xml
index 3984bac..4b2d3a4 100644
--- a/docs/src/site/site.xml
+++ b/docs/src/site/site.xml
@@ -133,7 +133,7 @@
 
     <menu name="Contribute">
       <item name="JIRA" href="https://issues.apache.org/jira/browse/TEZ" />
-      <item name="Git (Read/Write)" href="https://git-wip-us.apache.org/repos/asf/tez.git" alt="Use git clone https://git-wip-us.apache.org/repos/asf/tez.git" />
+      <item name="Git (Read/Write)" href="https://gitbox.apache.org/repos/asf/tez.git" alt="Use git clone https://gitbox.apache.org/repos/asf/tez.git" />
       <item name="Git (Read-only)" href="git://git.apache.org/tez.git" alt="Use git clone git://git.apache.org/tez.git" />
       <item name="How to Contribute" href="https://cwiki.apache.org/confluence/display/TEZ/How+to+Contribute+to+Tez" alt="Detailed guide on how to contribute to Tez" />
     </menu>
diff --git a/pom.xml b/pom.xml
index a5b383d..287cd41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,7 @@
     <protobuf.version>2.5.0</protobuf.version>
     <protoc.path>${env.PROTOC_PATH}</protoc.path>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <scm.url>scm:git:https://git-wip-us.apache.org/repos/asf/tez.git</scm.url>
+    <scm.url>scm:git:https://gitbox.apache.org/repos/asf/tez.git</scm.url>
     <build.time>${maven.build.timestamp}</build.time>
     <frontend-maven-plugin.version>1.4</frontend-maven-plugin.version>
     <findbugs-maven-plugin.version>3.0.1</findbugs-maven-plugin.version>
@@ -1029,7 +1029,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>2.7</version>
+          <version>2.9</version>
           <configuration>
             <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
           </configuration>
diff --git a/tez-api/src/test/java/org/apache/tez/common/TestVersionInfo.java b/tez-api/src/test/java/org/apache/tez/common/TestVersionInfo.java
index 17ff3d1..67f97b8 100644
--- a/tez-api/src/test/java/org/apache/tez/common/TestVersionInfo.java
+++ b/tez-api/src/test/java/org/apache/tez/common/TestVersionInfo.java
@@ -18,44 +18,41 @@
 
 package org.apache.tez.common;
 
-import java.io.IOException;
-
 import org.junit.Assert;
 import org.junit.Test;
 
-
 public class TestVersionInfo {
 
-  final String version = "0.6.0-SNAPSHOT";
-  final String revision = "d523db65804a5742ce50824e6fcfb8a04d184c0d";
-  final String buildTime = "20141024-1052";
-  final String scmUrl = "scm:git:https://git-wip-us.apache.org/repos/asf/tez.git";
+  private static final String VERSION = "0.6.0-SNAPSHOT";
+  private static final String REVISION = "d523db65804a5742ce50824e6fcfb8a04d184c0d";
+  private static final String BUILD_TIME = "20141024-1052";
+  private static final String SCM_URL = "scm:git:https://gitbox.apache.org/repos/asf/tez.git";
 
   @Test(timeout = 5000)
   public void testTest1File() {
     VersionInfo versionInfo = new VersionInfo("test1");
-    Assert.assertEquals(version, versionInfo.getVersion());
-    Assert.assertEquals(revision, versionInfo.getRevision());
-    Assert.assertEquals(buildTime, versionInfo.getBuildTime());
-    Assert.assertEquals(scmUrl, versionInfo.getSCMURL());
+    Assert.assertEquals(VERSION, versionInfo.getVersion());
+    Assert.assertEquals(REVISION, versionInfo.getRevision());
+    Assert.assertEquals(BUILD_TIME, versionInfo.getBuildTime());
+    Assert.assertEquals(SCM_URL, versionInfo.getSCMURL());
   }
 
   @Test(timeout = 5000)
   public void testTest2File() {
     VersionInfo versionInfo = new VersionInfo("test2");
-    Assert.assertEquals(version, versionInfo.getVersion());
-    Assert.assertEquals(revision, versionInfo.getRevision());
-    Assert.assertEquals(buildTime, versionInfo.getBuildTime());
+    Assert.assertEquals(VERSION, versionInfo.getVersion());
+    Assert.assertEquals(REVISION, versionInfo.getRevision());
+    Assert.assertEquals(BUILD_TIME, versionInfo.getBuildTime());
     Assert.assertEquals(VersionInfo.UNKNOWN, versionInfo.getSCMURL());
   }
 
   @Test(timeout = 5000)
   public void testTest3File() {
     VersionInfo versionInfo = new VersionInfo("test3");
-    Assert.assertEquals(version, versionInfo.getVersion());
-    Assert.assertEquals(revision, versionInfo.getRevision());
+    Assert.assertEquals(VERSION, versionInfo.getVersion());
+    Assert.assertEquals(REVISION, versionInfo.getRevision());
     Assert.assertEquals("", versionInfo.getBuildTime());
-    Assert.assertEquals(scmUrl, versionInfo.getSCMURL());
+    Assert.assertEquals(SCM_URL, versionInfo.getSCMURL());
   }
 
   @Test(timeout = 5000)
diff --git a/tez-api/src/test/resources/test1-version-info.properties b/tez-api/src/test/resources/test1-version-info.properties
index ebb4c03..e2563d6 100644
--- a/tez-api/src/test/resources/test1-version-info.properties
+++ b/tez-api/src/test/resources/test1-version-info.properties
@@ -19,4 +19,4 @@
 version=0.6.0-SNAPSHOT
 revision=d523db65804a5742ce50824e6fcfb8a04d184c0d
 buildtime=20141024-1052
-scmurl=scm:git:https://git-wip-us.apache.org/repos/asf/tez.git
+scmurl=scm:git:https://gitbox.apache.org/repos/asf/tez.git
diff --git a/tez-api/src/test/resources/test3-version-info.properties b/tez-api/src/test/resources/test3-version-info.properties
index 401f382..9def3fb 100644
--- a/tez-api/src/test/resources/test3-version-info.properties
+++ b/tez-api/src/test/resources/test3-version-info.properties
@@ -19,4 +19,4 @@
 version=0.6.0-SNAPSHOT
 revision=d523db65804a5742ce50824e6fcfb8a04d184c0d
 buildtime=
-scmurl=scm:git:https://git-wip-us.apache.org/repos/asf/tez.git
+scmurl=scm:git:https://gitbox.apache.org/repos/asf/tez.git
diff --git a/tez-ui/src/main/webapp/package.json b/tez-ui/src/main/webapp/package.json
index a14d215..92f54d2 100644
--- a/tez-ui/src/main/webapp/package.json
+++ b/tez-ui/src/main/webapp/package.json
@@ -19,7 +19,7 @@
   },
   "repository": {
     "type": "git",
-    "url": "https://git-wip-us.apache.org/repos/asf/tez.git"
+    "url": "https://gitbox.apache.org/repos/asf/tez.git"
   },
   "engines": {
     "node": ">= 0.10.0"
