Hi,
I'm trying to run sencha commands from my Ant file using sencha.jar without much success. If I point my classpath to where I installed Sencha then it seems to work but if I just copy sencha.jar and the lib directory it gave me an error.
I need to know what it is looking for so I can run it on a machine that does not have Sencha Cmd installed.
I copied from Sencha directory sencha.jar and lib\ to the current directory and this is the output from build.xml
Code:
c:\work_tmp>ant dist.sencha
Buildfile: c:\work_tmp\build.xml
dist.sencha:
[taskdef] Could not load definitions from resource net/sf/antcontrib/antlib.xml. It could not be found.
BUILD FAILED
java.lang.NullPointerException
at com.sencha.command.ConfigOverrideLoader.loadOverrides(ConfigOverrideLoader.java:139)
at com.sencha.command.ConfigOverrideLoader.getOverride(ConfigOverrideLoader.java:38)
at com.sencha.command.SenchaConfigManager.checkForOverride(SenchaConfigManager.java:173)
at com.sencha.command.SenchaConfigManager.getConfig(SenchaConfigManager.java:166)
at com.sencha.command.SenchaConfigManager.getConfig(SenchaConfigManager.java:57)
at com.sencha.command.Sencha.<init>(Sencha.java:40)
at com.sencha.ant.SenchaCommandTask.doExecute(SenchaCommandTask.java:34)
at com.sencha.ant.BaseAntTask.execute(BaseAntTask.java:21)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
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:601)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
at org.apache.tools.ant.Target.performTasks(Target.java:413)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.Main.runBuild(Main.java:811)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Total time: 0 seconds
BUILD FAILED
c:\work_tmp\build.xml:17: com.sencha.exceptions.BasicException
at com.sencha.exceptions.BasicException.wrap(BasicException.java:43)
at com.sencha.ant.BaseAntTask.execute(BaseAntTask.java:25)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
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:601)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
at org.apache.tools.ant.Target.performTasks(Target.java:413)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.Main.runBuild(Main.java:811)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.lang.NullPointerException
at com.sencha.command.ConfigOverrideLoader.loadOverrides(ConfigOverrideLoader.java:139)
at com.sencha.command.ConfigOverrideLoader.getOverride(ConfigOverrideLoader.java:38)
at com.sencha.command.SenchaConfigManager.checkForOverride(SenchaConfigManager.java:173)
at com.sencha.command.SenchaConfigManager.getConfig(SenchaConfigManager.java:166)
at com.sencha.command.SenchaConfigManager.getConfig(SenchaConfigManager.java:57)
at com.sencha.command.Sencha.<init>(Sencha.java:40)
at com.sencha.ant.SenchaCommandTask.doExecute(SenchaCommandTask.java:34)
at com.sencha.ant.BaseAntTask.execute(BaseAntTask.java:21)
... 17 more
Total time: 0 seconds
c:\work_tmp>
This is the content of build.xml
Code:
<project name="work_tmp" default="dist.sencha" basedir=".">
<target name="dist.sencha">
<path id="sencha.class.path2">
<fileset dir="c:\Program Files (x86)\SenchaCmd-3.0.0.181\Sencha\Cmd\3.0.0.181\lib" includes="*.jar"/>
<fileset dir="c:\Program Files (x86)\SenchaCmd-3.0.0.181\Sencha\Cmd\3.0.0.181\" includes="*.jar"/>
</path>
<path id="sencha.class.path">
<fileset dir="lib" includes="*.jar"/>
<fileset dir="." includes="sencha.jar"/>
</path>
<taskdef resource="com/sencha/ant/antlib.xml" classpathref="sencha.class.path"/>
<x-sencha-command>
compile
</x-sencha-command>
</target>
</project>
If I change classpathref="sencha.class.path" to "sencha.class.path2" then it seems to work fine. This is the output.
Code:
c:\work_tmp>ant dist.sencha
Buildfile: c:\work_tmp\build.xml
dist.sencha:
[taskdef] Could not load definitions from resource net/sf/antcontrib/antlib.xml. It could not be found.
[x-sencha-command] sencha compile
[x-sencha-command]
[x-sencha-command]
[x-sencha-command] This command category provides JavaScript compilation commands. The
[x-sencha-command] compile
[x-sencha-command]
[x-sencha-command] category maintains compilation state across its sub-commands so using
[x-sencha-command] and
[x-sencha-command] to
[x-sencha-command] connect sub-commands can provide significant time savings compared to making
[x-sencha-command] repeated calls.
[x-sencha-command]
[x-sencha-command]
[x-sencha-command] OPTIONS
[x-sencha-command]
[x-sencha-command] *
[x-sencha-command] --classpath
[x-sencha-command] ,
[x-sencha-command] -cl
[x-sencha-command] - adds fodler(s) to the class path
[x-sencha-command] *
[x-sencha-command] --debug
[x-sencha-command] ,
[x-sencha-command] -deb
[x-sencha-command] - enables the debug option for the js directive parser
[x-sencha-command] *
[x-sencha-command] --deferred-overrides
[x-sencha-command] ,
[x-sencha-command] -def
[x-sencha-command] - enable / disable deferred override processing (use with optimize)
[x-sencha-command] *
[x-sencha-command] --ignore
[x-sencha-command] ,
[x-sencha-command] -ig
[x-sencha-command] - excludes files with names containing the given substrings from the class path (comma separated)
[x-sencha-command] *
[x-sencha-command] --options
[x-sencha-command] ,
[x-sencha-command] -o
[x-sencha-command] - sets options for the js directive parser (name:value,...)
[x-sencha-command]
[x-sencha-command] COMMANDS
[x-sencha-command]
[x-sencha-command] *
[x-sencha-command] concatenate
[x-sencha-command] - produce a concatenated build
[x-sencha-command] *
[x-sencha-command] exclude
[x-sencha-command] - exclude files from the compilation set
[x-sencha-command] *
[x-sencha-command] include
[x-sencha-command] - include files into the compilation set
[x-sencha-command] *
[x-sencha-command] intersect
[x-sencha-command] - create a new save set by intersecting existing sets
[x-sencha-command] *
[x-sencha-command] metadata
[x-sencha-command] - produce class metadata
[x-sencha-command] *
[x-sencha-command] page
[x-sencha-command] - compiles a page
[x-sencha-command] *
[x-sencha-command] restore
[x-sencha-command] - alias for 'exclude +all and include -set=<set-name>'
[x-sencha-command] *
[x-sencha-command] save
[x-sencha-command] - remembers the currently enabled file state by a name
[x-sencha-command] *
[x-sencha-command] show-ignored
[x-sencha-command] - displays ignored files from the current classpath
[x-sencha-command] *
[x-sencha-command] union
[x-sencha-command] - alias for 'exclude +all and include ...'
[x-sencha-command]
BUILD SUCCESSFUL
Total time: 1 second
c:\work_tmp>