I came accross a catching problem. I’m not experience user on Maven, but I got it working and running.
I developed an external modular library called com.needeng.draw I exported it as a .jar lib and I mannage to import it to URCAP HelloWorld sample code, access the lib in Eclipse, use it’s funcion compile and run it and see the outputs in the Polyscope, without problem.
However whenever I make a change in the com.needeng.draw lib. As an example, creating a new method, the change was not reflected in the final urcap application. The eclipse accepted the changes in the code and allow me to work with them, the urcap was generated with no problem and loaded into polyscope, however the new methods inserted in the base .jar was not reflected, and I always get the some error like methodnotfoundexcption.
MY WORK AROUND
Given this, the only way I manage to reflect the changes made in base library to the polyscope, was deleting the URCAP using the polyscope, clicking in “-” signal. closing the polyscope. Recompiling the change, and opening it again. So it loads the new changes.
I ALSO TRY IT WITH NO SUCCESS
- Confirmed that my custom library output files were updated, once I compiled in the local maven repo.
- Manually deleted the urcap in the .urcap folder, and confirmed that the new one was loadade.
- I forced all the libraries to be updated. But the lib compiled still the same.
- Another poor work around was to change my lib version name, it forced the HelloWorld sample to reload it. however.
- Funny thing, I just needed to remove it from the polyscope in the “-” signal, and only recompile the HelloWorld, in order for the changes to have effect. I didn’t need to recompile my library. It meas that the changes were already there. Polyscope failed to load them.
- I tested it on Eclipse and InteliJ, and both gave the same result.
Since the only way to “fully” update the urcap was:
Manually Deleting it from Polyscope -> Closing the Polyscope -> Recompiling the HelloWorld example -> Reopen Polyscope.
I think that in some way, the Polyscope is lazy in overwriting existing libraries, and it did not check for differences. So once we delete it from the inside, we force the Polyscope to clean the library.
SOME BETTER WAY, PLEASE!??!
Is there a workaround for it? Can I add some magic command to maven to overcome it?
I forgot to mention… I’m running everythin on a Ubuntu 20.04 machine and I didn’t test it in the robot, just in the simulator.
This change might solve your issue Deploying URCap does not update resources located in felix-cache