Each script command creates a new BSFManager, so there is little sharing between the scripts. (This is a different model from HTML + script) The only sharing is via ant core objects (references or properties or (as Alexey indiciates) tasks/types.
Peter On 4/28/06, Marcel Ruff <[EMAIL PROTECTED]> wrote:
Alexey N. Solofnenko wrote: > Can you use <scriptdef> instead? See: > http://ant.apache.org/manual/OptionalTasks/scriptdef.html . i have tried already with no success (probably not hard enough :-), thanks, Marcel > > - Alexey. > > Marcel Ruff wrote: >> After fiddling further i have found this workaround: >> >> ----------------- >> <target name="pre"> >> <script language="javascript"> >> var expr = 'function doPrecond() { project.log("HELLO >> PRECOND"); }' >> project.setProperty("expr", expr); >> </script> >> </target> >> >> <target name="t" depends="pre"> >> <script language="javascript"> >> eval(""+project.getProperty("expr")); >> doPrecond(); >> </script> >> </target> >> --------------------- >> >> 1) Setting a property "expr" to transport the script >> 2) Executing the script in the calling task "t" >> Note that without the ""+ at the beginning of eval() it does not >> work >> >> I hope this helps others, like this it is possible to collect >> precondition code at a single place. >> >> But still I'm wondering about the scope of scripts ... >> >> thanks >> Marcel >> http://www.xmlBlaster.org >> >> Marcel Ruff wrote: >>> Hi, >>> >>> i have defined a javascript function in a "pre" task, >>> but when i want to call it later i get: >>> >>> ReferenceError: "doPrecond" is not defined >>> >>> Here is the xml, i call it with 'ant y': >>> >>> --------------------- >>> <target name="pre"> >>> <script language="javascript">function doPrecond() { >>> project.log("HELLO PRECOND"); }</script> >>> </target> >>> >>> <target name="y" depends="pre"> >>> <script language="javascript">doPrecond();</script> >>> </target> >>> --------------------- >>> >>> Any ideas? >>> >>> Thanks >>> Marcel >>> http://www.xmlBlaster.org >>> >>> Note: This works fine: >>> <target name="z"> >>> <script language="javascript"> >>> function doPrecond() { project.log("HELLO PRECOND"); } >>> doPrecond(); >>> </script> >>> </target> >>> >>> This fails as well: >>> <target name="r"> >>> <script language="javascript"> >>> function doPrecond() { project.log("HELLO PRECOND"); } >>> </script> >>> <script language="javascript"> >>> doPrecond(); >>> </script> >>> </target> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
