Open SomeshDaga opened 5 years ago
@jubeira I have put together some code that seems to be working for me locally, with the inconvenience that genjava
has to be built before the rest of my packages, since it is a message generator. I'd like to push these changes upstream, so that they can make it into the next release. Would a melodic
branch need to be created in these repos by one of the administrators of this project for me to issue pull requests to?
Thanks
Hi @SomeshDaga, sorry for the delay.
Yes, we would need a melodic
branch. In the past we've separated distro releases bumping the minor number of the packages, but since the differences between branches will be minimal I don't think it's necessary in this case. I'd say melodic
could still use 0.3.x
range of versions.
@drigz @ernestmc any thoughts about this?
@jubeira I have put together some code that seems to be working for me locally, with the inconvenience that genjava has to be built before the rest of my packages, since it is a message generator
Hmm I don't have that problem when building rosjava
from source in the current kinetic
branch. If your packages' dependencies are correct, genjava
should be built beforehand and then used to build the rest.
@jubeira No strong feelings either way from me. Thanks for checking!
I think keeping releases in separate branches will help in keeping order and for future reference, even if changes are minimal.
@jubeira Thanks for the follow up. With regards to your suspicions about not needing genjava
to be built beforehand, I require genjava to implicitly build messages within most packages in my workspace (hence, these packages don't have an explicit dependency on genjava). This creates an issue when a specific package depends on genjava
and a bunch of custom messages which were built prior to genjava
being built. I see that some of the java message artifacts are missing for some custom messages. However, all is fine if I specifically build genjava first, although it's a bit of an annoyance to do so
Like @ernestmc,I personally prefer the creation melodic
branches, esp. since packages like rosjava_bootstrap
contains references to the raw buildscript in rosjava_core
which specifically references kinetic
(although I don't see this file changing for melodic), which might be confusing to future users. Let me know if this works for you
I'm interested in using rosjava with ros melodic too, any updates on this?
It's in my bucket list; I'll make the branches and releases when I grasp some more time.
Note that if you use source installations at kinetic branch it should be basically the same for Melodic. Please let me know if you have issues with that one so that we can correct them eventually.
Using the kinetic branch for source installation in Melodic I get the following error:
$ rosdep install --from-paths src -i -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rosjava_messages: Cannot locate rosdep definition for [world_canvas_msgs]
It's in my bucket list; I'll make the branches and releases when I grasp some more time.
Note that if you use source installations at kinetic branch it should be basically the same for Melodic. Please let me know if you have issues with that one so that we can correct them eventually.
EDIT: If I proceed with the minimal install I get the following error when running catkin_make:
> :gradle_plugins:processResources
geometry_experimental/tf2/CMakeFiles/tf2.dir/build.make:86: recipe for target 'geometry_experimental/tf2/CMakeFiles/tf2.dir/src/buffer_core.cpp.o' failed
make[2]: *** [geometry_experimental/tf2/CMakeFiles/tf2.dir/src/buffer_core.cpp.o] Error 1
CMakeFiles/Makefile2:10925: recipe for target 'geometry_experimental/tf2/CMakeFiles/tf2.dir/all' failed
warning: [options] source value 6 is obsolete and will be removed in a future release
warning: [options] target value 1.6 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
Note: /root/rosjava_minimal/src/rosjava_bootstrap/message_generation/src/main/java/org/ros/internal/message/MessageImpl.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
3 warnings
[ 93%] Built target gradle-rosjava_bootstrap
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
Vote 👍 for rosjava melodic.
Hi,
Using the kinetic branch for source installation in Melodic I get the following error:
$ rosdep install --from-paths src -i -y ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: rosjava_messages: Cannot locate rosdep definition for [world_canvas_msgs]
It is the same for me (Ubuntu18, ros meldodic, java8). Additionally "genjava_message_artifacts" fails with a strange message "Could not find any version that matches org.ors.rosjava_bootstrap:gradle_plugins:[0.4,0.5]". Yes, there is only version 0.3.3 available but why is 04;0.5 requested? Andy where can I change the request to the existing version?
best regards Oliver
I notice the last post is quite old but this may help others... First of all, currently there is a melodic branch for some of the rosjava packages but if you try to follow the installation guide in the wiki replacing "kinetic" for "melodic", it will fail due to the packages that do not have the melodic branch. Hence, to keep things simple, I will assume you are installing the kinetic branch.
The error reported by @Rezenders is due to the fact that world_canvas_msgs is not supported in melodic:
Using the kinetic branch for source installation in Melodic I get the following error:
$ rosdep install --from-paths src -i -y ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: rosjava_messages: Cannot locate rosdep definition for [world_canvas_msgs]
Removing the entry from the CMakeLists.txt and package.xml files in the rosjava_messages package should take care of that.
Then you may encounter errors relating to not being able to find files for actionlib and dynamic_reconfigure. Just add these packages in the CMakeLists.txt and package.xml files. Also, remember to add any missing package for which you would want to generate messages, including your own packages.
This applies for building the core sources (section 3.1 in the wiki) in Ubuntu 18.04 with ROS Melodic. I didn't try the minimal install.
Hello guys,
Rosjava is always not supported by Ros Melodic, the only solution is to work with Java Ros_bridge, you can have a look on this https://github.com/h2r/java_rosbridge and http://wiki.ros.org/rosbridge_suite. It works quite well, the only issue is that the client-server communication is not supported.
any news on ros melodic?
Better to do rosjava for ROS Noetic Ninjemys
And to think about ros2 rosjava
I already try it and didn't succeded. Did you try it?
i build the source from http://wiki.ros.org/rosjava/Tutorials/kinetic/Source%20Installation
Whats next?
*had to fix some dependencies and such
Hi.
I see that rosjava does not have support for ROS Melodic as of yet. Being a relative newbie to the java world and the gradle build system, from what I attempted, it seems that all that is required is an upgrade in the gradle version to >= 4.7.
For the ROS message generators to work, it seems that they might have to be pre-installed before the workspace is built. Installing
genjava
androsjava_build_tools
from source and building it together with the rest of the ROS workspace results in some message dependencies not having the jar files built, due to race conditions in which packages get compiled first.Hence, should a
melodic
branch be created for the relevantrosjava
repos. I can submit some PRs for the update of the gradle version. Not sure how the release process works, and how long after being accepted will these changes be obtainable using rosdep