diff --git a/cmake/genjava-catkin-api.cmake.em b/cmake/genjava-catkin-api.cmake.em
index f9d33b7d56b49873889647c723b86171feeba011..670beac9cb2d2717ec5de22570ed4daf5ea69e08 100644
--- a/cmake/genjava-catkin-api.cmake.em
+++ b/cmake/genjava-catkin-api.cmake.em
@@ -36,18 +36,21 @@ macro(generate_rosjava_messages)
       set(verbosity "")
   endif()
   string(REPLACE ";" " " package_list "${ARG_PACKAGES}")
-  add_custom_target(${PROJECT_NAME}_rosjava_messages
+
+  add_custom_target(${PROJECT_NAME}_generate_artifacts
     ALL
     COMMAND ${CATKIN_ENV} ${PYTHON_EXECUTABLE} ${GENJAVA_BIN}
         ${verbosity}
         -o ${CMAKE_CURRENT_BINARY_DIR}
         -p ${ARG_PACKAGES} # this has to be a list argument so it separates each arg (not a single string!)
+    DEPENDS
     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
     COMMENT "Compiling rosjava message artifacts for [${package_list}]"
   )
+  set(build_dir_to_be_cleaned_list)
   foreach(pkg ${ARG_PACKAGES})
-    message(STATUS "Additional clean file.......${CMAKE_CURRENT_BINARY_DIR}/${pkg}/build.gradle")
-    set_directory_properties(PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/${pkg}/build.gradle)
-    add_dependencies(${PROJECT_NAME}_rosjava_messages ${pkg}_generate_messages)
+    list(APPEND build_dir_to_be_cleaned_list "${CMAKE_CURRENT_BINARY_DIR}/${pkg}")
+    add_dependencies(${PROJECT_NAME}_generate_artifacts ${pkg}_generate_messages)
   endforeach()
+  set_directory_properties(PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${build_dir_to_be_cleaned_list}")
 endmacro()