Hi Jacob,

you can see from the error message that an optional ant functionality is missing. Now, you have to find the ant-xxx.jar that contains this class and add it to ant-run's dependencies.

HTH

Armin

Am 09.09.2010 05:09, schrieb Jacob Beard:
Hi,

It actually seems that including the Bean Scripting Framework as a
dependency is causing the problems. Consider the following reduced
example. The following succeeds:


  <build>
    <plugins>
       <plugin>
         <artifactId>maven-antrun-plugin</artifactId>
         <version>1.4</version>
         <executions>
           <execution>
        <id>test</id>
             <phase>initialize</phase>
             <configuration>
               <tasks>
                <echo>Hello world!</echo>
                <script language="javascript">
                        x=0;
                </script>
                <echo>Hello world 2!</echo>
               </tasks>
             </configuration>
             <goals>
               <goal>run</goal>
             </goals>
           </execution>
         </executions>
        <dependencies>
                <!--
                <dependency>
                        <groupId>bsf</groupId>
                        <artifactId>bsf</artifactId>
                        <version>2.4.0</version>
                </dependency>
                -->
                <dependency>
                        <groupId>rhino</groupId>
                        <artifactId>js</artifactId>
                        <version>1.7R2</version>
                </dependency>
        </dependencies>
       </plugin>
    </plugins>
  </build>


And produces the following output:


      [echo] Hello world!
      [echo] Hello world 2!


But when the bsf plugin dependency is turned on, the script tag throws
the ClassNotFoundException with ScriptRunner:


  <build>
    <plugins>
       <plugin>
         <artifactId>maven-antrun-plugin</artifactId>
         <version>1.4</version>
         <executions>
           <execution>
        <id>test</id>
             <phase>initialize</phase>
             <configuration>
               <tasks>
                <echo>Hello world!</echo>
                <script language="javascript">
                        x=0;
                </script>
                <echo>Hello world 2!</echo>
               </tasks>
             </configuration>
             <goals>
               <goal>run</goal>
             </goals>
           </execution>
         </executions>
        <dependencies>
                <dependency>
                        <groupId>bsf</groupId>
                        <artifactId>bsf</artifactId>
                        <version>2.4.0</version>
                </dependency>
                <dependency>
                        <groupId>rhino</groupId>
                        <artifactId>js</artifactId>
                        <version>1.7R2</version>
                </dependency>
        </dependencies>
       </plugin>
    </plugins>
  </build>


[INFO] Executing tasks
      [echo] Hello world!
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] An Ant BuildException has occured:
java.lang.ClassNotFoundException:
org.apache.tools.ant.util.optional.ScriptRunner


I tried ant-nodeps as well, but adding that dependency produced a very
unusual error:


[INFO] [antrun:run {execution: test}]
[FATAL ERROR] org.apache.maven.plugin.antrun.AntRunMojo#execute()
caused a linkage error (java.lang.NoSuchMethodError) and may be
out-of-date. Check the realms:
[FATAL ERROR] Plugin realm =
app0.child-container[org.apache.maven.plugins:maven-antrun-plugin:1.4]
urls[0] = 
file:/home/jacob/.m2/repository/org/apache/maven/plugins/maven-antrun-plugin/1.4/maven-antrun-plugin-1.4.jar
urls[1] = file:/home/jacob/.m2/repository/rhino/js/1.7R2/js-1.7R2.jar
urls[2] = 
file:/home/jacob/.m2/repository/ant/ant-nodeps/1.6.5/ant-nodeps-1.6.5.jar
urls[3] = 
file:/home/jacob/.m2/repository/org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar
urls[4] = 
file:/home/jacob/.m2/repository/org/apache/ant/ant-nodeps/1.8.1/ant-nodeps-1.8.1.jar
urls[5] = file:/home/jacob/.m2/repository/org/apache/ant/ant/1.8.1/ant-1.8.1.jar
urls[6] = 
file:/home/jacob/.m2/repository/org/apache/ant/ant-launcher/1.8.1/ant-launcher-1.8.1.jar
[FATAL ERROR] Container realm = plexus.core
urls[0] = file:/usr/share/maven2/lib/maven-debian-uber.jar
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] 
org.apache.tools.ant.launch.Locator.fromJarURI(Ljava/lang/String;)Ljava/lang/String;
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NoSuchMethodError:
org.apache.tools.ant.launch.Locator.fromJarURI(Ljava/lang/String;)Ljava/lang/String;
         at 
org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:274)
         at 
org.apache.tools.ant.helper.ProjectHelper2.parseUnknownElement(ProjectHelper2.java:130)
         at 
org.apache.tools.ant.helper.ProjectHelper2.parseAntlibDescriptor(ProjectHelper2.java:110)
         at org.apache.tools.ant.taskdefs.Antlib.createAntlib(Antlib.java:91)
         at org.apache.tools.ant.taskdefs.Definer.loadAntlib(Definer.java:440)
         at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:292)
         at 
org.apache.maven.plugin.antrun.AbstractAntMojo.initMavenTasks(AbstractAntMojo.java:346)
         at 
org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:201)
         at 
org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:81)
         at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
         at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
         at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
         at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
         at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
         at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
         at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
         at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
         at 
org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:616)
         at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
         at 
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
         at org.codehaus.classworlds.Launcher.main(Launcher.java:375)


Am I missing something? Or would it be best to file a bug report for
the ant-run plugin?

Please let me know. Thanks,

Jake


On Wed, Sep 8, 2010 at 10:59 AM, Jacob Beard<jbea...@cs.mcgill.ca>  wrote:
Seems probable. I'll look into it, thanks.

Jake

On Wed, Sep 8, 2010 at 10:48 AM, Wayne Fay<wayne...@gmail.com>  wrote:
Based on my research, it seems that ScriptRunner support is something
that needs to be built into Ant at compile-time, so perhaps the
version of ant downloaded by maven does not have this support built
into it.
This documentation will probably be useful to you:
http://maven.apache.org/plugins/maven-antrun-plugin/examples/customTasks.html

I assume the Rhino bits are available in ant-nodeps artifact or
similar, but you'd have to ask the Ant crew or figure it out yourself.

Wayne

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to