PDA

View Full Version : [INFOREQ] Found Ext.dd in all-classes.js but no DD in app



cmeans
3 Nov 2012, 6:48 PM
Sencha Cmd 3.0.0.230
ExtJS v4.1.1a

Is there a dependency I'm maybe not aware of with DD support even when I'm not using it?

I'm trying to get my all-classes.js as bare as possible, and I'm not sure why Ext.dd.DD would be referenced.

Thanks.

dongryphon
4 Nov 2012, 11:01 AM
The DD package is used by panel and grid (given certain options) and so is probably just required in from one of them.

In the next build we have added a build property that you can used to manipulate the set of files used to produce all-classes.js so if you are certain that none of these options are in play, you could try ejecting that namespace. This property can be set to one or more compiler set operations so you will be able to do pretty much whatever you want to add or remove files.

To be more specific, there is one final property (build.operations) that is set based on one of two environment properties (build.operations.production or build.operations.testing).

In the next build this is only supported for Ext JS apps but we will be reworking some of the internals of Touch build process so that we can include similar support for Touch apps.

cmeans
4 Nov 2012, 11:12 AM
Thanks Don, I'll try and be patient for the next build of Sencha Cmd.

dongryphon
4 Nov 2012, 5:20 PM
If you want to experiment with things you could look at replacing the "-page" with what will be in the next build:



<target name="-page">

<!-- compile the page -->
<x-sencha-command>
compile
${build.options}
page
-name=page
-in=index.html
-out=${build.dir}/index.html
and
restore
page
and
${build.operations}
and
concat
${build.compression}
-out=${build.dir}/all-classes.js
</x-sencha-command>
</target>


You can do the above in .sencha/app/build-impl.xml if you like ... you should see a similar but smaller flavor in that file.

The build.options property (and likewise the build.operations and build.compression properties) are set to build.options.production or build.options.testing. For experimenting I would just poke the short name to the value you want to try.

Setting build.operations is a bit interesting since it needs to be a multi-line value. Something that contains \n between each operation is needed if you have multiple. Maybe this in your build.xml:



<property name="build.operations" value="exclude
-namespace=Ext.dd"/>


The new line is important there. Since you will probably want the same excludes there for production and testing builds, the above will be approximately right even though it can be tuned differently by build environment.

cmeans
4 Nov 2012, 8:00 PM
Hi Don,

I gave this a try, but I think I need more direction.

What exactly should "build.options" be set to? I get that I can choose 'production' vs. a different target, but putting:


<property name="build.options" value="build.options.production" />

nor


<property name="build.options" value="production" />


into build.xml worked (both generated errors like:

com.sencha.exceptions.ExNotFound: No such property : '''build.options.production'''

Is "build.options" a reference to other properties?

I'll need a bit more hand-holding/direction to test this out.

Thanks.

-Chris

dongryphon
4 Nov 2012, 9:35 PM
The value of build.operations can be a sequence of compiler commands to remove classes you don't want included. For example:



<property name="build.operations" value="exclude
-namespace=Ext.dd"/>


This will get inserted into the compile command just before the concat command that produces "all-classes.js" so will remove the Ext.dd namespace. You can see the ${build.operations} expansion in the "-page" target in my post... that is where the "exclude \n -namespace=Ext.dd" gets placed.

You may be having issues if you don't include this as well in your build.xml:



<property name="build.compression" value=""/>
<property name="build.options" value=""/>

cmeans
5 Nov 2012, 7:10 AM
Still no joy.

Here's the output from "sencha app build":



Sencha Cmd v3.0.0.230
[INFO ]

[INFO ] init-properties:
[INFO ]

[INFO ]

[INFO ] init-sencha-command:
[INFO ]

[INFO ]

[INFO ] init:
[INFO ]

[INFO ]

[INFO ] -before-app-build:
[INFO ]

[INFO ]

[INFO ] app-build-impl:
[INFO ]

[INFO ]

[INFO ] production:
[INFO ]

[INFO ]

[INFO ] -before-init-local:
[INFO ]

[INFO ]

[INFO ] -init-local:
[INFO ]

[INFO ]

[INFO ] -after-init-local:
[INFO ]

[INFO ]

[INFO ] init-local:
[INFO ]

[INFO ]

[INFO ] find-cmd:
[INFO ]

[INFO ]

[INFO ] -before-init:
[INFO ]

[INFO ]

[INFO ] -init:
[INFO ]

[INFO ]

[INFO ] -after-init:
[INFO ]

[INFO ]

[INFO ] init:
[INFO ]

[INFO ]

[INFO ] -before-build:
[INFO ]

[INFO ]

[INFO ] sass:
[INFO ]

[INFO ]

[INFO ] -before-sass:
[INFO ]

[INFO ]

[INFO ] -sass:
[INFO ]

[INFO ] [shellscript]
[INFO ]

[INFO ] [shellscript] C:\Workspaces\eclipse\AtlasWeb nTelos\src\CoverageLocator\resources\sass\default>compass compile --boring --force
[INFO ]

[INFO ] [shellscript] identical app.css
[INFO ]

[INFO ] Compressed 0 of 1 (1 up to date)
[INFO ] [shellscript]
[INFO ]

[INFO ] [shellscript] C:\Workspaces\eclipse\AtlasWeb nTelos\src\CoverageLocator\resources\sass\ntelos>compass compile --boring --force
[INFO ]

[INFO ] [shellscript] identical app.css
[INFO ]

[INFO ] Compressed 0 of 1 (1 up to date)
[INFO ] [copy] Copying 2 files to C:\Workspaces\eclipse\AtlasWeb nTelos\PrecompiledWeb\CoverageLocator
[INFO ]

[INFO ]

[INFO ] -after-sass:
[INFO ]

[INFO ]

[INFO ] theme:
[INFO ]

[INFO ]

[INFO ] -before-theme:
[INFO ]

[INFO ]

[INFO ] -theme:
[INFO ]

[INFO ] Building theme
[INFO ] Capturing theme image
[INFO ] Capture complete
[INFO ] Slicing theme
[INFO ] Slice complete
[INFO ] Build complete
[INFO ] Building theme
[INFO ] Capturing theme image
[INFO ] Capture complete
[INFO ] Slicing theme
[INFO ] Slice complete
[INFO ] Build complete
[INFO ]

[INFO ] -after-theme:
[INFO ]

[INFO ]

[INFO ] page:
[INFO ]

[INFO ]

[INFO ] -before-page:
[INFO ]

[INFO ]

[INFO ] -page:
[INFO ]

[ERROR]

[ERROR] BUILD FAILED

[ERROR] java.lang.StringIndexOutOfBoundsException: String index out of range: 0

[ERROR] at java.lang.String.charAt(Unknown Source)

[ERROR] at com.sencha.cli.Arguments.push(Arguments.java:189)

[ERROR] at com.sencha.cli.Arguments.<init>(Arguments.java:35)

[ERROR] at com.sencha.cli.AbstractCommand.dispatch(AbstractCommand.java:184)

[ERROR] at com.sencha.ant.SenchaCommandTask.doExecute(SenchaCommandTask.java:58)

[ERROR] at com.sencha.ant.BaseAntTask.execute(BaseAntTask.java:22)

[ERROR] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)

[ERROR] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)

[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at java.lang.reflect.Method.invoke(Unknown Source)

[ERROR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)

[ERROR] at org.apache.tools.ant.Task.perform(Task.java:348)

[ERROR] at org.apache.tools.ant.Target.execute(Target.java:392)

[ERROR] at org.apache.tools.ant.Target.performTasks(Target.java:413)

[ERROR] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)

[ERROR] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)

[ERROR] at org.apache.tools.ant.Project.executeTargets(Project.java:1251)

[ERROR] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)

[ERROR] at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)

[ERROR] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)

[ERROR] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)

[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at java.lang.reflect.Method.invoke(Unknown Source)

[ERROR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)

[ERROR] at org.apache.tools.ant.Task.perform(Task.java:348)

[ERROR] at org.apache.tools.ant.Target.execute(Target.java:392)

[ERROR] at org.apache.tools.ant.Target.performTasks(Target.java:413)

[ERROR] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)

[ERROR] at org.apache.tools.ant.Project.executeTarget(Project.java:1368)

[ERROR] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)

[ERROR] at org.apache.tools.ant.Project.executeTargets(Project.java:1251)

[ERROR] at com.sencha.ant.AntRunner.run(AntRunner.java:156)

[ERROR] at com.sencha.ant.AntRunner.run(AntRunner.java:80)

[ERROR] at com.sencha.command.ant.AntCommand.execute(AntCommand.java:74)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at java.lang.reflect.Method.invoke(Unknown Source)

[ERROR] at com.sencha.cli.Command.dispatch(Command.java:78)

[ERROR] at com.sencha.cli.Commands.dispatch(Commands.java:49)

[ERROR] at com.sencha.cli.AbstractCommand.dispatch(AbstractCommand.java:184)

[ERROR] at com.sencha.ant.SenchaCommandTask.doExecute(SenchaCommandTask.java:58)

[ERROR] at com.sencha.ant.BaseAntTask.execute(BaseAntTask.java:22)

[ERROR] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at java.lang.reflect.Method.invoke(Unknown Source)

[ERROR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)

[ERROR] at org.apache.tools.ant.Task.perform(Task.java:348)

[ERROR] at org.apache.tools.ant.Target.execute(Target.java:392)

[ERROR] at org.apache.tools.ant.Target.performTasks(Target.java:413)

[ERROR] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)

[ERROR] at org.apache.tools.ant.Project.executeTarget(Project.java:1368)

[ERROR] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)

[ERROR] at org.apache.tools.ant.Project.executeTargets(Project.java:1251)

[ERROR] at com.sencha.ant.AntRunner.run(AntRunner.java:156)

[ERROR] at com.sencha.ant.AntRunner.run(AntRunner.java:72)

[ERROR] at com.sencha.command.BasePluginCommands$BasePluginCommand.run(BasePluginCommands.java:80)

[ERROR] at com.sencha.command.BasePluginCommands$BaseNamePathCommand.run(BasePluginCommands.java:120)

[ERROR] at com.sencha.command.app.AppCommands$BuildCommand.execute(AppCommands.java:96)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at java.lang.reflect.Method.invoke(Unknown Source)

[ERROR] at com.sencha.cli.Command.dispatch(Command.java:78)

[ERROR] at com.sencha.cli.Commands.dispatch(Commands.java:49)

[ERROR] at com.sencha.cli.Commands.dispatch(Commands.java:49)

[ERROR] at com.sencha.cli.AbstractCommand.dispatch(AbstractCommand.java:184)

[ERROR] at com.sencha.command.Sencha.main(Sencha.java:58)

[ERROR]

[ERROR] Total time: 37 seconds
[ERROR]

[ERROR]

[ERROR] BUILD FAILED

[ERROR] com.sencha.exceptions.BasicException: The following error occurred while executing this line:

[ERROR] C:\Workspaces\eclipse\AtlasWeb nTelos\src\CoverageLocator\.sencha\app\build-impl.xml:183: com.sencha.exceptions.BasicException: String index out of range: 0

[ERROR] at com.sencha.exceptions.BasicException.wrap(BasicException.java:43)

[ERROR] at com.sencha.cli.Command.dispatch(Command.java:104)

[ERROR] at com.sencha.cli.Commands.dispatch(Commands.java:49)

[ERROR] at com.sencha.cli.AbstractCommand.dispatch(AbstractCommand.java:184)

[ERROR] at com.sencha.ant.SenchaCommandTask.doExecute(SenchaCommandTask.java:58)

[ERROR] at com.sencha.ant.BaseAntTask.execute(BaseAntTask.java:22)

[ERROR] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at java.lang.reflect.Method.invoke(Unknown Source)

[ERROR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)

[ERROR] at org.apache.tools.ant.Task.perform(Task.java:348)

[ERROR] at org.apache.tools.ant.Target.execute(Target.java:392)

[ERROR] at org.apache.tools.ant.Target.performTasks(Target.java:413)

[ERROR] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)

[ERROR] at org.apache.tools.ant.Project.executeTarget(Project.java:1368)

[ERROR] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)

[ERROR] at org.apache.tools.ant.Project.executeTargets(Project.java:1251)

[ERROR] at com.sencha.ant.AntRunner.run(AntRunner.java:156)

[ERROR] at com.sencha.ant.AntRunner.run(AntRunner.java:72)

[ERROR] at com.sencha.command.BasePluginCommands$BasePluginCommand.run(BasePluginCommands.java:80)

[ERROR] at com.sencha.command.BasePluginCommands$BaseNamePathCommand.run(BasePluginCommands.java:120)

[ERROR] at com.sencha.command.app.AppCommands$BuildCommand.execute(AppCommands.java:96)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at java.lang.reflect.Method.invoke(Unknown Source)

[ERROR] at com.sencha.cli.Command.dispatch(Command.java:78)

[ERROR] at com.sencha.cli.Commands.dispatch(Commands.java:49)

[ERROR] at com.sencha.cli.Commands.dispatch(Commands.java:49)

[ERROR] at com.sencha.cli.AbstractCommand.dispatch(AbstractCommand.java:184)

[ERROR] at com.sencha.command.Sencha.main(Sencha.java:58)

[ERROR] Caused by: C:\Workspaces\eclipse\AtlasWeb nTelos\src\CoverageLocator\.sencha\app\build-impl.xml:220: The following error occurred while executing this line:

[ERROR] C:\Workspaces\eclipse\AtlasWeb nTelos\src\CoverageLocator\.sencha\app\build-impl.xml:183: com.sencha.exceptions.BasicException: String index out of range: 0

[ERROR] at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:551)

[ERROR] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:444)

[ERROR] at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)

[ERROR] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)

[ERROR] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)

[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at java.lang.reflect.Method.invoke(Unknown Source)

[ERROR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)

[ERROR] at org.apache.tools.ant.Task.perform(Task.java:348)

[ERROR] at org.apache.tools.ant.Target.execute(Target.java:392)

[ERROR] at org.apache.tools.ant.Target.performTasks(Target.java:413)

[ERROR] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)

[ERROR] at org.apache.tools.ant.Project.executeTarget(Project.java:1368)

[ERROR] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)

[ERROR] at org.apache.tools.ant.Project.executeTargets(Project.java:1251)

[ERROR] at com.sencha.ant.AntRunner.run(AntRunner.java:156)

[ERROR] at com.sencha.ant.AntRunner.run(AntRunner.java:80)

[ERROR] at com.sencha.command.ant.AntCommand.execute(AntCommand.java:74)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at java.lang.reflect.Method.invoke(Unknown Source)

[ERROR] at com.sencha.cli.Command.dispatch(Command.java:78)

[ERROR] ... 31 more

[ERROR] Caused by: C:\Workspaces\eclipse\AtlasWeb nTelos\src\CoverageLocator\.sencha\app\build-impl.xml:183: com.sencha.exceptions.BasicException: String index out of range: 0

[ERROR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:116)

[ERROR] at org.apache.tools.ant.Task.perform(Task.java:348)

[ERROR] at org.apache.tools.ant.Target.execute(Target.java:392)

[ERROR] at org.apache.tools.ant.Target.performTasks(Target.java:413)

[ERROR] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)

[ERROR] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)

[ERROR] at org.apache.tools.ant.Project.executeTargets(Project.java:1251)

[ERROR] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)

[ERROR] ... 52 more

[ERROR] Caused by: com.sencha.exceptions.BasicException: String index out of range: 0

[ERROR] at com.sencha.exceptions.BasicException.wrap(BasicException.java:43)

[ERROR] at com.sencha.ant.BaseAntTask.execute(BaseAntTask.java:26)

[ERROR] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)

[ERROR] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)

[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

[ERROR] at java.lang.reflect.Method.invoke(Unknown Source)

[ERROR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)

[ERROR] ... 59 more

[ERROR] Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0

[ERROR] at java.lang.String.charAt(Unknown Source)

[ERROR] at com.sencha.cli.Arguments.push(Arguments.java:189)

[ERROR] at com.sencha.cli.Arguments.<init>(Arguments.java:35)

[ERROR] at com.sencha.cli.AbstractCommand.dispatch(AbstractCommand.java:184)

[ERROR] at com.sencha.ant.SenchaCommandTask.doExecute(SenchaCommandTask.java:58)

[ERROR] at com.sencha.ant.BaseAntTask.execute(BaseAntTask.java:22)

[ERROR] ... 64 more

[ERROR]

[ERROR] Total time: 38 seconds
[ERROR]

[ERROR] com.sencha.exceptions.BasicException: The following error occurred while executing this line:
C:\Workspaces\eclipse\AtlasWeb nTelos\src\CoverageLocator\.sencha\app\build-impl.xml:183: com.sencha.exceptions.BasicException: String index out of range: 0



Here's my build-impl.xml:



<?xml version="1.0" encoding="utf-8"?>
<project>
<!--
Init-Local
-->
<target name="-before-init-local"/>
<target name="-init-local">
<property file="${basedir}/../../local.properties"/>

<script language="javascript">
var f = new java.io.File(project.getProperty("basedir"));
var sub = ".sencha/workspace/sencha.cfg";

for (var p = f; p; p = p.getParentFile()) {
var t = new java.io.File(p, sub);
if (t.exists()) {
// we found the workspace folder!

t = new java.io.File(p, "local.properties");
if (t.exists()) {
var loader = project.createTask("property");
loader.setFile(new java.io.File(t.getCanonicalPath()));
loader.execute();
}

break;
}
}
</script>
</target>
<target name="-after-init-local"/>
<target name="init-local"
depends="-before-init-local,-init-local,-after-init-local"/>

<!--
Find Sencha Cmd
-->
<target name="find-cmd" unless="cmd.dir">
<!--
Run "sencha which" to find the Sencha Cmd basedir and get "cmd.dir" setup. We
need to execute the command with curdir set properly for Cmd to pick up that we
are running for an application.
-->
<exec executable="sencha" dir="${basedir}">
<arg value="which"/><arg value="-o=$cmddir$"/>
</exec>

<!-- Now read the generated properties file and delete it -->
<property file="$cmddir$"/>
<delete file="$cmddir$"/>

<echo>Using Sencha Cmd from ${cmd.dir}</echo>
</target>

<!--
Init
-->
<target name="-before-init"/>
<target name="-init">
<taskdef resource="com/sencha/ant/antlib.xml" classpath="${cmd.dir}/sencha.jar"/>
<x-sencha-init prefix=""/>

<!-- initialize the build.dir property from the workspace config after we've loaded it -->
<property name="build.dir" location="${workspace.build.dir}"/>

<!-- Some operations require sencha.jar in the Ant classpath -->
<x-extend-classpath>
<jar path="${cmd.dir}/sencha.jar"/>
</x-extend-classpath>
</target>
<target name="-after-init"/>
<target name="init"
depends="init-local,find-cmd,-before-init,-init,-after-init"/>

<!--
Clean
-->
<target name="-before-clean"/>
<target name="-clean">
<delete dir="${build.dir}"/>
</target>
<target name="-after-clean"/>
<target name="clean"
depends="init,-before-clean,-clean,-after-clean"
description="Removes all build output produced by the 'build' target"/>

<!--
Build SASS
-->
<target name="-before-sass"/>
<target name="-sass">
<!-- run sass compilation over the various themes -->
<for param="sass">
<dirset dir="${app.dir}/resources/sass" includes="*"/>
<sequential>
<local name="app-css-dir"/>
<local name="build-css-dir"/>
<local name="sass.name"/>
<local name="use.shell"/>

<property name="app-css-dir" location="${app.dir}/resources/css"/>
<property name="build-css-dir" location="${build.dir}/resources/css"/>

<!--
convert abspath to just the leaf path name
-->
<basename property="sass.name" file="@{sass}"/>

<!--
compile to both the workspace (for theme build)
and build directory (for deployment)
-->
<condition property="use.shell" value="true">
<os family="unix"/>
</condition>

<x-shell dir="@{sass}">
compass compile --boring --force
</x-shell>

<x-compress-css srcfile="${build-css-dir}/${sass.name}/*.css"
outdir="${build-css-dir}/${sass.name}"/>
</sequential>
</for>

<!-- copy framework / app resource files to build.dir -->
<copy todir="${build.dir}">
<fileset dir="${app.dir}"
includes="resources/**/*"
excludes="resources/sass,
resources/theme"/>
</copy>
<copy toDir="${build.dir}/${framework.name}">
<fileset dir="${framework.dir}"
includes="resources/themes/images/**/*,
src/ux/**/css/**/*"/>
</copy>
</target>
<target name="-after-sass"/>
<target name="sass" depends="init" unless="skip.sass"
description="Builds only the SASS files using Compass">
<antcall target="-before-sass"/>
<antcall target="-sass"/>
<antcall target="-after-sass"/>
</target>

<!--
Build Themes
-->
<target name="-before-theme"/>
<target name="-theme">
<!-- slice the themes for the various images -->
<for param="theme">
<dirset dir="${app.dir}/resources/theme" includes="*"/>
<sequential>
<local name="theme.name"/>
<basename property="theme.name" file="@{theme}"/>

<x-sencha-command>
theme
build
-page=@{theme}/theme.html
-out=${build.dir}/resources/images/${theme.name}
</x-sencha-command>
</sequential>
</for>
</target>
<target name="-after-theme"/>
<target name="theme" depends="init" unless="skip.theme"
description="Builds only the application's Theme(s)">
<antcall target="-before-theme"/>
<antcall target="-theme"/>
<antcall target="-after-theme"/>
</target>

<!--
Build Page
-->
<target name="-before-page"/>
<target name="-page">

<!-- compile the page -->
<x-sencha-command>
compile
${build.options}
page
-name=page
-in=index.html
-out=${build.dir}/index.html
and
restore
page
and
${build.operations}
and
concat
${build.compression}
-out=${build.dir}/all-classes.js
</x-sencha-command>
</target>

<target name="old-page">
<!-- initialize the build.dir parameter if it hasn't been already -->
<local name="build.dir"/>
<property name="build.dir" location="${workspace.build.dir}"/>

<!-- compile the page -->
<x-sencha-command>
compile
page
+yui
-in=index.html
-out=${build.dir}/index.html
</x-sencha-command>
</target>
<target name="-after-page"/>
<target name="page" depends="init" unless="skip.page"
description="Builds only the application's HTML page">
<antcall target="-before-page"/>
<antcall target="-page"/>
<antcall target="-after-page"/>
</target>

<!--
Build
-->
<target name="-before-build"/>
<target name="-build" depends="sass,theme,page"/>
<target name="-after-build"/>
<target name="build"
depends="init,-before-build,-build,-after-build"
description="Builds the application"/>

<!--
environment setters
-->

<target name="production">
<property name="args.environment" value="production"/>
</target>

<target name="testing">
<property name="args.environment" value="testing"/>
</target>

<target name="native">
<property name="args.environment" value="native"/>
</target>

<target name="package">
<property name="args.environment" value="package"/>
</target>

<!--
Helpful targets
-->
<target name=".props" depends="init"
description="Lists all properties defined for the build">
<echoproperties/>
</target>

<target name=".help" depends="init"
description="Provides help on the build script">
<local name="-alltargets"/>
<x-shell outputproperty="-alltargets">
ant -f ${ant.file} -p
</x-shell>

<!--
Remove the annoying "Default taret:.help" smashed on the end of the output.
-->
<script language="javascript">
var s = project.getProperty("-alltargets"),
n = s.indexOf('Default target:');
//self.log("all=" + n);
project.setProperty("-alltargets", s.substring(0, n));
</script>

<echo><![CDATA[${-alltargets}
This is the main build script for your application.

The following properties can be used to disable certain steps in the build
process.

* skip.page Do not build the HTML page.
* skip.sass Do not build the SASS.
* skip.theme Do not build the theme images.

These options can be stored in a local.properties file in this folder or in the
local.properties file in the workspace.

Alternatively, these can be supplied on the command line. For example:

ant -Dskip.sass=1 build

To see all currently defined properties, do this:

ant .props
]]></echo>
</target>

</project>



Here's my build.xml:



<?xml version="1.0" encoding="utf-8"?>
<project name="@@@" default=".help">
<!--
<property name="build.options" value="-classpath=${app.dir}/scripts/app,${app.dir}/scripts/ux,${app.dir}/../../../SpatialPoint Sencha ExtJS Library/src" />
-->
<property name="build.options" value="" />
<property name="build.compression" value=""/>
<property name="build.operations" value="exclude
-namespace=Ext.dd"/>

<import file="${basedir}/.sencha/app/build-impl.xml"/>

<!--
The following targets can be provided to inject logic before and/or after key steps
of the build process:

The "init-local" target is used to initialize properties that may be personalized
for the local machine.

<target name="-before-init-local"/>
<target name="-after-init-local"/>

The "clean" target is used to clean build output from the build.dir.

<target name="-before-clean"/>
<target name="-after-clean"/>

The general "init" target is used to initialize all other properties, including
those provided by Sencha Cmd.

<target name="-before-init"/>
<target name="-after-init"/>

The "build" target performs the call to Sencha Cmd to build the application.

<target name="-before-build"/>
<target name="-after-build"/>
-->
<target name="-after-page">
<move file="${build.dir}/all-classes.js"
tofile="${build.dir}/all-classes.js2"/>

<concat destfile="${build.dir}/all-classes.js">
<header filtering="no" trimleading="yes">
/*
nTelos Coverage Locator

Portions Copyright (c) 2006-2012, Sencha Inc.
All rights reserved.
http://www.sencha.com

Portions Copyright (c) 2012 SpatialPoint, LLC.
All rights reserved.
http://www.spatialpoint.com
*/
</header>
<fileset file="${build.dir}/all-classes.js2"/>
</concat>
<delete file="${build.dir}/all-classes.js2" />
</target>

</project>



I did try both a blank build.options, but also with the classpath from my sencha.cfg.

-Chris

dongryphon
7 Nov 2012, 12:20 AM
The option is now available in the shipping build.

You should be able to remove any of the attempted fixes and run "sencha app upgrade" to get the new build-impl.xml. Hopefully you will be able to remove Ext.dd now with just this in your build.xml:



<property name="build.operations" value="exclude
-namespace=Ext.dd"/>


Thanks again!

cmeans
7 Nov 2012, 7:15 AM
I've got the new build of Sencha, but I've not changed the version of ExtJS, so will the "sencha app upgrade" still change the templates etc.?

cmeans
7 Nov 2012, 9:17 AM
Rather than wait for a response, I went ahead and tried upgrading to the same version of ExtJS to see if that then updated the build-impl templates etc..

Unfortunately, it didn't appear to work...here's the session:



C:\Workspaces\eclipse\locator\src\Locator>sencha app upgrade /To
ols/JavaScript/ext-4.1.1a-commercial/ext-4.1.1a
Sencha Cmd v3.0.0.250
[INF] init-properties:
[INF] init-sencha-command:
[INF] init:
[INF] -before-app-upgrade:
[INF] app-upgrade-impl:
[INF] building application
[INF] Backing up framework files from C:\Workspaces\eclipse\locator\src\Locator\ext to C:\Workspaces\eclipse\locator\s
rc\Locator\.sencha_backup\ext\4.1.1
[INF] [move] Moving 2008 files to C:\Workspaces\eclipse\locator\src\Locator\.sencha_backup\ext\4.1.1
[INF] [move] Moved 210 empty directories to 2 empty directories under C:\Workspaces\eclipse\locator\src\Locator\.sencha_backup\ex
t\4.1.1
[INF] Backing up application files from C:\Workspaces\eclipse\locator\src\Locator to C:\Workspaces\eclipse\locator\src
\Locator\.sencha_backup\Locator\4.1.1
[INF] [copy] Copying 377 files to C:\Workspaces\eclipse\locator\src\Locator\.sencha_backup\Locator\4.1.1
[INF] [copy] Copied 80 empty directories to 2 empty directories u
nder C:\Workspaces\eclipse\locator\src\Locator\.sencha_backup\Locator\4.1.1
[INF] Updating application and workspace files
[INF] init-properties:
[INF] init-sencha-command:
[INF] init:
[INF] -before-generate-app:
[INF] generate-app-impl:
[WRN] Ignoring @require ../version/Version.js in js/String.js
[WRN] Ignoring @require ../Ext-more.js in js/Format.js
[INF] update-app:
[INF] update-app:
[INF] [mkdir] Created dir: C:\Workspaces\eclipse\locator\src\Locator\app\model
[INF] [mkdir] Created dir: C:\Workspaces\eclipse\locator\src\Locator\app\store
[ERR] BUILD FAILED
[ERR] com.sencha.exceptions.BasicException: The following error occurred while executing this line:
[ERR] C:\Workspaces\eclipse\locator\src\Locator\.sench
a\workspace\plugin.xml:2: Cannot find C:\Workspaces\eclipse\locator\src\Locator\.sencha\workspace\$'{'framework.config.dir'}'\plugin.xml importe
d from C:\Workspaces\eclipse\locator\src\Locator\.sencha\workspace\plugin.xml
[ERR] at com.sencha.exceptions.BasicException.wrap(BasicExcept
ion.java:43)
[ERR] at com.sencha.cli.Command.dispatch(Command.java:104)
[ERR] at com.sencha.cli.Commands.dispatch(Commands.java:49)
[ERR] at com.sencha.cli.Commands.dispatch(Commands.java:49)
[ERR] at com.sencha.cli.AbstractCommand.dispatch(AbstractComma
nd.java:182)
[ERR] at com.sencha.ant.SenchaCommandTask.doExecute(SenchaComm
andTask.java:58)
[ERR] at com.sencha.ant.BaseAntTask.execute(BaseAntTask.java:2
2)
[ERR] at org.apache.tools.ant.UnknownElement.execute(UnknownEl
ement.java:291)
[ERR] at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown
Source)
[ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
[ERR] at java.lang.reflect.Method.invoke(Unknown Source)
[ERR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(D
ispatchUtils.java:106)
[ERR] at org.apache.tools.ant.Task.perform(Task.java:348)
[ERR] at org.apache.tools.ant.Target.execute(Target.java:392)
[ERR] at org.apache.tools.ant.Target.performTasks(Target.java:
413)
[ERR] at org.apache.tools.ant.Project.executeSortedTargets(Pro
ject.java:1399)
[ERR] at org.apache.tools.ant.Project.executeTarget(Project.ja
va:1368)
[ERR] at org.apache.tools.ant.helper.DefaultExecutor.executeTa
rgets(DefaultExecutor.java:41)
[ERR] at org.apache.tools.ant.Project.executeTargets(Project.j
ava:1251)
[ERR] at com.sencha.ant.AntRunner.run(AntRunner.java:156)
[ERR] at com.sencha.ant.AntRunner.run(AntRunner.java:72)
[ERR] at com.sencha.command.BasePluginCommands$BasePluginComma
nd.run(BasePluginCommands.java:87)
[ERR] at com.sencha.command.BasePluginCommands$BasePluginComma
nd.run(BasePluginCommands.java:91)
[ERR] at com.sencha.command.BasePluginCommands$BaseNamePathCom
mand.run(BasePluginCommands.java:135)
[ERR] at com.sencha.command.generator.GeneratorCommands$AppCom
mand.execute(GeneratorCommands.java:230)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
ource)
[ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
[ERR] at java.lang.reflect.Method.invoke(Unknown Source)
[ERR] at com.sencha.cli.Command.dispatch(Command.java:78)
[ERR] at com.sencha.cli.Commands.dispatch(Commands.java:49)
[ERR] at com.sencha.cli.Commands.dispatch(Commands.java:49)
[ERR] at com.sencha.cli.AbstractCommand.dispatch(AbstractComma
nd.java:182)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
ource)
[ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
[ERR] at java.lang.reflect.Method.invoke(Unknown Source)
[ERR] at sun.reflect.misc.Trampoline.invoke(Unknown Source)
[ERR] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown S
ource)
[ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
[ERR] at java.lang.reflect.Method.invoke(Unknown Source)
[ERR] at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
[ERR] at sun.org.mozilla.javascript.internal.MemberBox.invoke(
Unknown Source)
[ERR] at sun.org.mozilla.javascript.internal.NativeJavaMethod.
call(Unknown Source)
[ERR] at sun.org.mozilla.javascript.internal.Interpreter.inter
pretLoop(Unknown Source)
[ERR] at sun.org.mozilla.javascript.internal.Interpreter.inter
pret(Unknown Source)
[ERR] at sun.org.mozilla.javascript.internal.InterpretedFuncti
on.call(Unknown Source)
[ERR] at sun.org.mozilla.javascript.internal.ContextFactory.do
TopCall(Unknown Source)
[ERR] at com.sun.script.javascript.RhinoScriptEngine$1.superDo
TopCall(Unknown Source)
[ERR] at com.sun.script.javascript.RhinoScriptEngine$1.doTopCa
ll(Unknown Source)
[ERR] at sun.org.mozilla.javascript.internal.ScriptRuntime.doT
opCall(Unknown Source)
[ERR] at sun.org.mozilla.javascript.internal.InterpretedFuncti
on.exec(Unknown Source)
[ERR] at sun.org.mozilla.javascript.internal.Context.evaluateR
eader(Unknown Source)
[ERR] at com.sun.script.javascript.RhinoScriptEngine.eval(Unkn
own Source)
[ERR] at com.sun.script.javascript.RhinoScriptEngine.eval(Unkn
own Source)
[ERR] at javax.script.AbstractScriptEngine.eval(Unknown Source
)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
ource)
[ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
[ERR] at java.lang.reflect.Method.invoke(Unknown Source)
[ERR] at org.apache.tools.ant.util.ReflectUtil.invoke(ReflectU
til.java:108)
[ERR] at org.apache.tools.ant.util.ReflectWrapper.invoke(Refle
ctWrapper.java:81)
[ERR] at org.apache.tools.ant.util.optional.JavaxScriptRunner.
evaluateScript(JavaxScriptRunner.java:103)
[ERR] at org.apache.tools.ant.util.optional.JavaxScriptRunner.
executeScript(JavaxScriptRunner.java:67)
[ERR] at org.apache.tools.ant.taskdefs.optional.script.ScriptD
ef.executeScript(ScriptDef.java:350)
[ERR] at org.apache.tools.ant.taskdefs.optional.script.ScriptD
efBase.execute(ScriptDefBase.java:50)
[ERR] at org.apache.tools.ant.UnknownElement.execute(UnknownEl
ement.java:291)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
ource)
[ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
[ERR] at java.lang.reflect.Method.invoke(Unknown Source)
[ERR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(D
ispatchUtils.java:106)
[ERR] at org.apache.tools.ant.Task.perform(Task.java:348)
[ERR] at org.apache.tools.ant.Target.execute(Target.java:392)
[ERR] at org.apache.tools.ant.Target.performTasks(Target.java:
413)
[ERR] at org.apache.tools.ant.Project.executeSortedTargets(Pro
ject.java:1399)
[ERR] at org.apache.tools.ant.Project.executeTarget(Project.ja
va:1368)
[ERR] at org.apache.tools.ant.helper.DefaultExecutor.executeTa
rgets(DefaultExecutor.java:41)
[ERR] at org.apache.tools.ant.Project.executeTargets(Project.j
ava:1251)
[ERR] at com.sencha.ant.AntRunner.run(AntRunner.java:156)
[ERR] at com.sencha.ant.AntRunner.run(AntRunner.java:72)
[ERR] at com.sencha.command.BasePluginCommands$BasePluginComma
nd.run(BasePluginCommands.java:87)
[ERR] at com.sencha.command.app.AppCommands$UpgradeCommand.exe
cute(AppCommands.java:157)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
ource)
[ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
[ERR] at java.lang.reflect.Method.invoke(Unknown Source)
[ERR] at com.sencha.cli.Command.dispatch(Command.java:78)
[ERR] at com.sencha.cli.Commands.dispatch(Commands.java:49)
[ERR] at com.sencha.cli.Commands.dispatch(Commands.java:49)
[ERR] at com.sencha.command.Sencha.main(Sencha.java:71)
[ERR] Caused by: C:\Workspaces\eclipse\locator\src\Loc
ator\.sencha\app\plugin.xml:22: The following error occurred while executing thi
s line:
[ERR] C:\Workspaces\eclipse\locator\src\Locator\.sench
a\workspace\plugin.xml:2: Cannot find C:\Workspaces\eclipse\locator\src\Locator\.sencha\workspace\$'{'framework.config.dir'}'\plugin.xml importe
d from C:\Workspaces\eclipse\locator\src\Locator\.sencha\workspa
ce\plugin.xml
[ERR] at org.apache.tools.ant.ProjectHelper.addLocationToBuild
Exception(ProjectHelper.java:551)
[ERR] at org.apache.tools.ant.taskdefs.ImportTask.importResour
ce(ImportTask.java:238)
[ERR] at org.apache.tools.ant.taskdefs.ImportTask.execute(Impo
rtTask.java:163)
[ERR] at org.apache.tools.ant.UnknownElement.execute(UnknownEl
ement.java:291)
[ERR] at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown
Source)
[ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
[ERR] at java.lang.reflect.Method.invoke(Unknown Source)
[ERR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(D
ispatchUtils.java:106)
[ERR] at org.apache.tools.ant.Task.perform(Task.java:348)
[ERR] at org.apache.tools.ant.Target.execute(Target.java:392)
[ERR] at org.apache.tools.ant.helper.ProjectHelper2.parse(Proj
ectHelper2.java:180)
[ERR] at org.apache.tools.ant.ProjectHelper.configureProject(P
rojectHelper.java:82)
[ERR] at com.sencha.ant.AntRunner.run(AntRunner.java:155)
[ERR] at com.sencha.ant.AntRunner.run(AntRunner.java:72)
[ERR] at com.sencha.command.BasePlug
[ERR] inCommands$BasePluginCommand.run(BasePluginCommands.java:87)
[ERR] at com.sencha.command.BasePluginCommands$BasePluginComma
nd.run(BasePluginCommands.java:91)
[ERR] at com.sencha.command.BasePluginCommands$BaseNamePathCom
mand.run(BasePluginCommands.java:135)
[ERR] at com.sencha.command.app.AppCommands$RefreshCommand.exe
cute(AppCommands.java:258)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
[ERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
ource)
[ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
[ERR] at java.lang.reflect.Method.invoke(Unknown Source)
[ERR] at com.sencha.cli.Command.dispatch(Command.java:78)
[ERR] ... 89 more
[ERR] Caused by: C:\Workspaces\eclipse\locator\src\Loc
ator\.sencha\workspace\plugin.xml:2: Cannot find C:\Workspaces\eclipse\l
ocator\src\Locator\.sencha\workspace\$'{'framework.config.dir'}'\plugin.
xml imported from C:\Workspaces\eclipse\locator\src\Locator\.sen
cha\workspace\plugin.xml
[ERR] at org.apache.tools.ant.taskdefs.ImportTask.importResour
ce(ImportTask.java:182)
[ERR] at org.apache.tools.ant.taskdefs.ImportTask.execute(Impo
rtTask.java:163)
[ERR] at org.apache.tools.ant.UnknownElement.execute(UnknownEl
ement.java:291)
[ERR] at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown
Source)
[ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
wn Source)
[ERR] at java.lang.reflect.Method.invoke(Unknown Source)
[ERR] at org.apache.tools.ant.dispatch.DispatchUtils.execute(D
ispatchUtils.java:106)
[ERR] at org.apache.tools.ant.Task.perform(Task.java:348)
[ERR] at org.apache.tools.ant.Target.execute(Target.java:392)
[ERR] at org.apache.tools.ant.helper.ProjectHelper2.parse(Proj
ectHelper2.java:169)
[ERR] at org.apache.tools.ant.taskdefs.ImportTask.importResour
ce(ImportTask.java:229)
[ERR] ... 110 more
[ERR] Total time: 3 seconds
[ERR] javax.script.ScriptException: sun.org.mozilla.javascript.interna
l.WrappedException: Wrapped com.sencha.exceptions.BasicException: com.sencha.exc
eptions.BasicException: The following error occurred while executing this line:
C:\Workspaces\eclipse\locator\src\Locator\.sencha\workspace\plug
in.xml:2: Cannot find C:\Workspaces\eclipse\locator\src\Locator\
.sencha\workspace\${framework.config.dir}\plugin.xml imported from C:\Workspaces
\eclipse\locator\src\Locator\.sencha\workspace\plugin.xml (<Unkn
own source>#268) in <Unknown source> at line number 268

C:\Workspaces\eclipse\locator\src\Locator>


I'll see if I can backout of any changes this made.

-Chris

dongryphon
7 Nov 2012, 9:57 AM
Did you run "sencha app upgrade" from the app root folder? It almost looks like it was executed from a src subfolder. I'll check with others on the callstack.

cmeans
7 Nov 2012, 10:01 AM
Yes, I ran it in the app root folder. Same place I run "sencha app build" from.

I did try running "sencha app upgrade" without the path to ExtJS but it didn't like that :)

I had to sanitize the path a bit (in my "bug" posting) to exclude some client proprietary names, but the paths in the output I provided are all consistent.

cmeans
7 Nov 2012, 10:09 AM
A new issue is that since the "upgrade" (once I cleaned things up a bit), it's now deploying the production output to a folder named "production" below my build target.

I've tried to override that by creating a local.properties file in my .sencha/app folder and setting:


args.environment=


But that didn't seem to make a difference.

cmeans
7 Nov 2012, 10:41 AM
I realize I'm mixing a number of issues into this one thread...but this did seem to do the trick for removing Ext.dd:

<property name="build.operations" value="exclude ${line.separator} -namespace=Ext.dd"/>

Having an actual new line manually entered in the ANT script just kept causing errors.

dongryphon
7 Nov 2012, 10:42 AM
To make all builds go to the same folder you can set the "build.dir" property. It now includes the build environment in formulating that path. Maybe this in your build.xml:



<target name="-before-init">
<property name="build.dir" location="../build" />
</target>


Or you could put that in local.properties but that was intended to be just for you personally and not committed to source control.

dongryphon
7 Nov 2012, 10:44 AM
I realize I'm mixing a number of issues into this one thread...but this did seem to do the trick for removing Ext.dd:

<property name="build.operations" value="exclude ${line.separator} -namespace=Ext.dd"/>

Having an actual new line manually entered in the ANT script just kept causing errors.

Good technique there... I think I will recommend folks to do that for the build.operations property. Thanks for sharing it and glad to hear it is working for you :)

cmeans
7 Nov 2012, 10:51 AM
To make all builds go to the same folder you can set the "build.dir" property. It now includes the build environment in formulating that path. Maybe this in your build.xml:



<target name="-before-init">
<property name="build.dir" location="../build" />
</target>


Or you could put that in local.properties but that was intended to be just for you personally and not committed to source control.

Good know about "local.properties"...I'll add that to our instructions.

However, the above change didn't get the result I wanted.

I currently have this in my .sencha/workspace/sencha.cfg:


workspace.build.dir=${workspace.dir}/../../PrecompiledWeb/${app.name}


Which had worked fine for deploying the built code to the intended folder.

Should I blank that out and use the -before-init setting but with the "working" value?

cmeans
7 Nov 2012, 10:56 AM
This did the trick...just moving the value into the build.xml as you directed:


<target name="-before-init">
<property name="build.dir" location="${workspace.dir}/../../PrecompiledWeb/${app.name}" />
</target>



Thanks.

dongryphon
7 Nov 2012, 11:02 AM
Sure thing.

For build settings (vs Cmd configuration) I try to keep things in build.xml (or local.properties for personal settings). It just happens that sencha.cfg properties are imported into the build process for helpfulness in respecting those settings.

cmeans
7 Nov 2012, 11:23 AM
Good technique there... I think I will recommend folks to do that for the build.operations property. Thanks for sharing it and glad to hear it is working for you :)

I'm a dummy...my app does rely on Ext.dd (I hadn't thought about window resizing and a split bar being DD...but it makes sense).

Though the all-classes.js is smaller with the latest version of Cmd, I'd still like to make sure it is as small as I can get it...any suggestions for things to look for (or techniques to apply)?

Thanks.

dongryphon
7 Nov 2012, 12:37 PM
The debug output of the compiler walks you through the dependency process (rather verbose) but it can help explain why things are being included in your build. This can be non-obvious due to how auto-dependencies are detected (e.g., "xtype" usages and the like).