diff --git a/CMakeLists.txt b/CMakeLists.txt
index f3b1beb804bf2f524fe5ea46949a5c117507988a..f4f90e622e1a894e5bbb84ed3ec285c746f541f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,7 +11,7 @@ project(rosjava_bootstrap)
 
 find_package(catkin REQUIRED rosjava_build_tools)
 
-catkin_rosjava_setup(publish installApp)
+catkin_rosjava_setup(publish installDist)
 
 catkin_package()
 
diff --git a/build.gradle b/build.gradle
index bdd43648aa18c11e404df34bfe4c9c9b68e4f20b..c79f165ffd04a22ce489b183405dfda1fd2b3b6c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -63,4 +63,4 @@ subprojects {
   }
 }
 
-defaultTasks 'publish', 'installApp'
+defaultTasks 'publish', 'installDist'
diff --git a/gradle.gradle b/gradle.gradle
index 4fa3467c632bcf20f49d8716dfa2c38f8edf8320..2c4548906236326cbadedb0184bc8d42946335d8 100644
--- a/gradle.gradle
+++ b/gradle.gradle
@@ -1,3 +1,3 @@
 task wrapper(type: Wrapper) {
-    gradleVersion = '2.14.1'
+    gradleVersion = '3.5.1'
 }
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 3c7abdf12790879c06b07176de29647f77aa4129..72eace8d2cd26647484a02ff636d0291f22eee41 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 0c5dfceae4d9f49a78eaefd39cfafac7772490fc..7004efb677f15e4d7cfc17e6d186138df3f022a6 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Tue Mar 11 23:34:43 MSK 2014
+#Fri Jan 26 13:47:21 ART 2018
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.5.1-bin.zip
diff --git a/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy b/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy
index 5ef5bf2116c61962b5fee6394ad3bc4f9390f26c..7576ef39bd9bb4735f8b94f6248002b3d41bef04 100644
--- a/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy
+++ b/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy
@@ -56,15 +56,17 @@ class CatkinPlugin implements Plugin<Project> {
         if (packageXml != null) {
             project.catkin.pkg = new CatkinPackage(project, packageXml)
         }
+        project.catkin.tree.generate()
+
 	    setTasks()
     }
     def void setTasks() {
-        project.task('catkinPackageInfo') << {
+        project.task('catkinPackageInfo').doLast {
             println("CatkinPlugin is happy, you should be too.")
             println("Catkin Workspaces........." + project.catkin.workspaces)
             println("Catkin Packages")
-            project.catkin.packages.each { pkg ->
-                print pkg.value.toString()
+            project.catkin.tree.pkgs.each { pkg ->
+                println(pkg.value.toString())
             }
         }
     }