3

I want to execute rake task from within ant. My jruby is available as a zip file during build process and I'm extracting it during run time. My build.xml is something like below:

<target name="load-rake-task">
    <typedef name="rake" classname="org.jruby.ant.Rake" classpath="${jruby.dir}/jruby/lib/jruby.jar" />
</target>
<target name="build" depends="load-rake-task">
    <rake task="build" />
</target>

When I run ant build it gives me below exception:

build:
    [rake] LoadError: no such file to load -- ant/tasks/raketasks
    [rake]   require at org/jruby/RubyKernel.java:1085
    [rake]    (root) at <script>:1
BUILD FAILED
build.xml:23: Could not create type rake due to org.jruby.embed.EvalFailedException: (LoadError) no such file to load -- ant/tasks/raketasks
    at org.jruby.embed.internal.EmbedEvalUnitImpl.run(EmbedEvalUnitImpl.java:133)
    at org.jruby.embed.ScriptingContainer.runUnit(ScriptingContainer.java:1264)
    at org.jruby.embed.ScriptingContainer.runScriptlet(ScriptingContainer.java:1257)
    at org.jruby.ant.RakeTaskBase.acquireRakeReference(RakeTaskBase.java:38)
    at org.jruby.ant.RakeTaskBase.<init>(RakeTaskBase.java:17)
    at org.jruby.ant.Rake.<init>(Rake.java:6)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.apache.tools.ant.AntTypeDefinition.innerCreateAndSet(AntTypeDefinition.java:328)
    at org.apache.tools.ant.AntTypeDefinition.createAndSet(AntTypeDefinition.java:274)
    at org.apache.tools.ant.AntTypeDefinition.icreate(AntTypeDefinition.java:219)
    at org.apache.tools.ant.AntTypeDefinition.create(AntTypeDefinition.java:206)
    at org.apache.tools.ant.ComponentHelper.createComponent(ComponentHelper.java:285)
    at org.apache.tools.ant.ComponentHelper.createComponent(ComponentHelper.java:263)
    at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:429)
    at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:163)
    at org.apache.tools.ant.Task.perform(Task.java:347)
    at org.apache.tools.ant.Target.execute(Target.java:435)
    at org.apache.tools.ant.Target.performTasks(Target.java:456)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
    at org.apache.tools.ant.Main.runBuild(Main.java:851)
    at org.apache.tools.ant.Main.startAnt(Main.java:235)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- ant/tasks/raketasks
    at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:1085)
    at RUBY.(root)(<script>:1)

Does anyone have any idea about how to resolve it? I've build.xml and Rakefile in same directory. ${jruby.dir} points to extracted jruby directory.

Keyur Shah
  • 81
  • 1
  • 6

0 Answers0