diff --git a/CMakeLists.txt b/CMakeLists.txt
index a666da6a058239634a5e553f89fb9e76b2a4ca60..04f9cbd5bda9d66c3c945115ecab4cb4ed7b43b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,10 +9,21 @@ project(rosjava_core)
 # Catkin
 ##############################################################################
 
-find_package(catkin REQUIRED rosjava_build_tools)
+find_package(catkin REQUIRED 
+    rosjava_build_tools
+    geometry_msgs
+    nav_msgs
+    rosjava_test_msgs
+    rosgraph_msgs
+    sensor_msgs
+    tf2_msgs
+)
 
 catkin_rosjava_setup(publishMavenJavaPublicationToMavenRepository installApp)
 
+# make sure messages get built first if genjava is enabled
+add_dependencies(gradle-${PROJECT_NAME} ${catkin_EXPORTED_TARGETS})
+
 catkin_package()
 
 ##############################################################################