1) myjava_pkgs/pub_sub is a sibling project of myjava_pkgs/foo. pub_sub itself shouldn't need much of an update after running catkin_create_rosjava_project pub_sub but the key part if you want to use your foo artifact is listing it as a dependency. That appears to be missing in your build.gradle where the only dependency you have listed is rosjava_core:  dependencies { compile 'org.ros.rosjava_core:rosjava:[0.1,)' }  There are two kinds of dependencies - that one for rosjava_core is an external dependency, but since foo here is a sibling project then it needs to be expressed as an internal dependency, e.g.:
 dependencies { compile 'org.ros.rosjava_core:rosjava:[0.1,)' compile project(':foo') } 
2) It should never actually try to pull rosjava_test_msgs in any shape or form. Maybe it's something stray in your setup, or something in the build - I'd need to test. Anyway, try and fix 1) and see if you still have a problem here.
3) These scripts are driven by the code and templates at https://github.com/rosjava/rosjava_build_tools/tree/hydro/src/rosjava_build_tools. You can play around with them locally by putting a hydro fork of that repo in your source workspace, or just directly editing files in /opt/ros/hydro/lib/python2.7/dist-packages/rosjava_build_tools. Send me a pull request if you make anything useful!