First, thanks to Ian MacLean for answering my
initial question about using Jscript with a <script> task!
I was able to get everything working until I got
brave and tried to define a custom task in Jscript :)
I use this nant code:
<target name="test" description="test"
>
<call target="custom_tasks" /> <fmexport dbfile="db" user="us" pass="pw" script="scriptit" /> <echo message="test complete" /> </target> <target name="custom_tasks" description="Create Custom Tasks for use" > <script language="JS" prefix="superego" > <imports refid="thread.imports" /> <code> <![CDATA[ TaskNameAttribute("fmexport") public class fmexport extends Task { protected var sFilepath : String; protected var sAcct : String; protected var sPass : String; protected var sScript : String; // Create the property setters TaskAttributeAttribute("dbfile", Required=true) public function set dbfile(n_dbfile: String) { sFilepath = n_dbfile; }; TaskAttributeAttribute("user", Required=true) public function set user(n_user : String) { sAcct = n_user; }; TaskAttributeAttribute("pass", Required=true) public function set pass(n_pass : String) { sPass = n_pass; } ; TaskAttributeAttribute("script", Required=true) public function set script(n_script : String) { sScript = n_script; }; public function fmexport() { }; protected override function ExecuteTask() : void { Log(Level.Info, sFilepath + " " + sAcct + " " + sPass + " " + sScript ); } } ]]> </code> </script> </target> And I get this
result:
Z:\ratrace\inter\global\game\FileMaker>nant
test
NAnt 0.85 (Build 0.85.1954.0; nightly; 5/8/2005) Copyright (C) 2001-2005 Gerry Shaw http://nant.sourceforge.net Target framework: Microsoft .NET Framework 1.1 Target(s) specified: test test: custom_tasks: [script] Scanning assembly "jc-9hg7q" for extensions.
BUILD FAILED
INTERNAL ERROR
System.MissingMethodException: Constructor on type
nantea92a6f750e34b6dbc26f44e45b7b89c+fmexport not found.
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder bin der, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Reflection.Assembly.CreateInstance(String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture , Object[] activationAttributes) at NAnt.Core.TaskBuilder.CreateTask() in d:\Source\nant-20050507T183440Z\src\NAnt.Core\TaskBuilder.cs:line 94 at NAnt.Core.TypeFactory.CreateTask(XmlNode taskNode, Project proj) in d:\Source\nant20050507T183440Z\src\NAnt.Core\TypeFactory.cs:line 316 at NAnt.Core.Project.CreateTask(XmlNode taskNode, Target target) in d:\Source\nant20050507T183440Z\src\NAnt.Core\Project.cs:line 1019 at NAnt.Core.Target.Execute() in d:\Source\nant-20050507T183440Z\src\NAnt.Core\Target.cs:line 245 at NAnt.Core.Project.Execute(String targetName, Boolean forceDependencies) in d:\Source\nant-20050507T183440Z\src\NAnt.Core\Project.cs:line 887 at NAnt.Core.Project.Execute() in d:\Source\nant-20050507T183440Z\src\NAnt.Core\Project.cs:line 839 at NAnt.Core.Project.Run() in d:\Source\nant-20050507T183440Z\src\NAnt.Core\Project.cs:line 924 Observations:
I tried this with various permutations of constructors, all with no
joy.
Any Help would be appreciated!
-Norman
|
- [Nant-users] Creating a custom task in Jscript? Norman Morse
- RE: [Nant-users] Creating a custom task in Jscript? Gert Driesen