diff --git a/package.xml b/package.xml
index 8576df49d28eccb316fd56e9db7b49bf7cc51dcc..2aa17896b053dbcb4877e5f695bcdf4da1bfb2ef 100644
--- a/package.xml
+++ b/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rosjava_build_tools</name>
-  <version>0.3.2</version>
+  <version>0.3.3</version>
   <description>
     Simple tools and catkin modules for rosjava development.
   </description>
diff --git a/src/rosjava_build_tools/gradle/Readme.md b/src/rosjava_build_tools/gradle/Readme.md
index 8ef61da49ecedf982d97b4c0534b99df0e77d3e1..c2b6daaab2a1e7d234f1b891d5f3594ea2562a9a 100644
--- a/src/rosjava_build_tools/gradle/Readme.md
+++ b/src/rosjava_build_tools/gradle/Readme.md
@@ -1,3 +1,3 @@
 This is not installed, but it gets used to generate the gradle wrapper for a project.
 
-It is currently the gradle wrapper supporting gradle 2.14.1
+It is currently the gradle wrapper supporting gradle 4.6
diff --git a/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.jar b/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.jar
index 3c7abdf12790879c06b07176de29647f77aa4129..3baa851b28c65f87dd36a6748e1a85cf360c1301 100644
Binary files a/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.jar and b/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.properties b/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.properties
index 0f9159b337c45c7c0cc7bd24eed0ad860f86616c..50d293e54175349954b7266e128bfdd5b9070f62 100644
--- a/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.properties
+++ b/src/rosjava_build_tools/gradle/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Wed Feb 11 20:39:17 KST 2015
+#Wed Mar 14 09:34:19 CET 2018
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=http\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
diff --git a/src/rosjava_build_tools/gradle/gradlew b/src/rosjava_build_tools/gradle/gradlew
index 91a7e269e19dfc62e27137a0b57ef3e430cee4fd..27309d92314c57d6e442529f1362bafc8376feae 100755
--- a/src/rosjava_build_tools/gradle/gradlew
+++ b/src/rosjava_build_tools/gradle/gradlew
@@ -6,12 +6,30 @@
 ##
 ##############################################################################
 
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
 
 APP_NAME="Gradle"
 APP_BASE_NAME=`basename "$0"`
 
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD="maximum"
 
@@ -30,6 +48,7 @@ die ( ) {
 cygwin=false
 msys=false
 darwin=false
+nonstop=false
 case "`uname`" in
   CYGWIN* )
     cygwin=true
@@ -40,31 +59,11 @@ case "`uname`" in
   MINGW* )
     msys=true
     ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
 esac
 
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
-    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
-APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
-
 CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
 
 # Determine the Java command to use to start the JVM.
@@ -90,7 +89,7 @@ location of your Java installation."
 fi
 
 # Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
     MAX_FD_LIMIT=`ulimit -H -n`
     if [ $? -eq 0 ] ; then
         if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -114,6 +113,7 @@ fi
 if $cygwin ; then
     APP_HOME=`cygpath --path --mixed "$APP_HOME"`
     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
 
     # We build the pattern for arguments to be converted via cygpath
     ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`