Closed matentzn closed 2 months ago
That’s completely expected. If you invoke ROBOT directly, it has no idea where to look for plugins. So it looks in the default location, $HOME/.robot/plugins
, where obviously it does not find anything.
When you invoke it as part of a Makefile rule, it knows to look into $(ROBOT_PLUGINS_DIRECTORY)
(aka $(TMPDIR)/plugins
) because the Makefile explicitly sets and exports the ROBOT_PLUGINS_DIRECTORY
variable.
There is no mechanism to pass arbitrary environment variables to run.sh
, so what you could do here instead is to use ODK_JAVA_OPTS
to set the robot.pluginsdir
Java property:
ODK_JAVA_OPTS="-Drobot.pluginsdir=/work/src/ontology/tmp/plugins" sh run.sh robot ...
Of note:
ODK_JAVA_OPTS
set in run.sh
, so if you also need to set some other Java parameters (e.g. -Xmx30G
), you need to manually set them in your call (ODK_JAVA_OPTS="-DXmx30G -Drobot.pluginsdir=..."
).sh.run.conf
for convenience.$(TMPDIR)/plugins
. You must either put them there yourself or make sure that the plugins have already been installed by a previous call to a workflow that depends on them (or manually run sh run.sh make all_robot_plugins
).Perfect! Thank you!!
I just observed this oddity, and am wondering if you can see @gouttegd and easy explanation:
If I run a robot command with a plugin directly from the command line:
I get this error:
If I stick it into the Makefile:
I get:
Can you imagine any good explanation for this?