Hello Martin,

Is there anything that you've changed in the flexconfig.xml? I am also using
the same Flex ANT Tasks and the latest Flex ANT Libraries. I haven't changed
anything in the flexconfig file. I just copied the flexTasks.jar in my
ANT_HOME/lib. So, I dont need to use a classpath to find the mxmlc task.
Following is my build file to compile all the mxml files in a directory
structure. It works for me. You may skip the ant-contrib part, i.e the for
loops.

/*** Start my build file ****/
<project name="mybuild" default="build" basedir=".">

   <target name="build">
       <taskdef resource="flexTasks.tasks" />
       <taskdef resource="net/sf/antcontrib/antlib.xml"/>
            <property name="FLEX_HOME" value="C:\Program Files\Adobe\Flex
Builder 2\Flex SDK 2"/>
            <property name="APP_ROOT" value="${basedir}"/>

            <for param="files">
                <fileset dir="${APP_ROOT}\src">
                 <include name="**/*.mxml"/>
           </fileset>
           <sequential>
               <for list="en_US,fr_FR" param="locale">
                   <sequential>
                           <mxmlc file="@{files}"
keep-generated-actionscript="false">
                              <load-config
filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
                               <source-path
path-element="${FLEX_HOME}/frameworks"/>
                               <!-- This defines where the locale classpath
needs to be -->

<compiler.source-pathpath-element="[EMAIL PROTECTED]"/>
                           </mxmlc>

                           <mkdir dir="[EMAIL PROTECTED]"/>

                          <move todir="[EMAIL PROTECTED]">
                            <fileset dir="${APP_ROOT}\src">
                                <include name="**\*.swf"/>
                            </fileset>
                           </move>
                         </sequential>
               </for>
           </sequential>
       </for>
   </target>
</project>

/*** End of mybuild file ****/

All I need to do to run this is just say ant at the command prompt.

I hope it helps.

Varun Bhambri


On 6/13/07, Martin Gainty <[EMAIL PROTECTED]> wrote:

Good Evening All

Just started to use this package and cant get FLEX_HOME to set
or mxlmc to execute properly
/********attached mySimpleBuild.xml************/
<?xml version="1.0" encoding="utf-8"?>
<!-- mySimpleBuild.xml -->
<project name="My App Builder" basedir=".">
     <taskdef resource="flexTasks.tasks"
classpath="C:/ANT/flexTasks/lib/flexTasks.jar" />
     <property name="FLEX_HOME"
value="C:/CFusion/CFUSIO~1/wwwroot/WEB-INF/cfform"/>
     <property name="APP_ROOT" value="myApp"/>
     <target name="main">
         <mxmlc file="${APP_ROOT}/Main.mxml"
keep-generated-actionscript="true">
             <load-config
filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
             <source-path path-element="${FLEX_HOME}/frameworks"/>
         </mxmlc>
     </target>
</project>
/******************end mySimpleBuild.xml***************/

/******************START flex-config.xml*********************/
<?xml version="1.0" encoding="UTF-8"?>
<flex-config xmlns="http://www.macromedia.com/2003/flex-config";>

    <!-- When production-mode is true: all debugging options are set to
false and
          compiler dependency check is turned off so apps will not
automatically
          be recompiled when source files are modified.
         -->
    <production-mode>false</production-mode>

    <!-- When production-mode=true, the debugging options are always
         false and may not be set. -->
    <debugging>

        <!-- allow override of values in debugging section via
             query parameter on a per-request basis, if applicable -->
        <process-debug-query-params>true</process-debug-query-params>

        <!-- generate swfs and swds for debugging -->
        <!-- query parameter override - ?debug=true/?debug=false -->
        <generate-debug-swfs>false</generate-debug-swfs>

        <!-- generate swfs and swfs for profiling -->
        <!-- query parameter override - ?asprofile=true/?asprofile=false
-->
        <generate-profile-swfs>false</generate-profile-swfs>

        <!-- write xxx-generated.as file to disk -->
        <!-- These files are generated by the compiler during mxml
translation. -->
        <keep-generated-as>false</keep-generated-as>

        <!-- write generated swfs/swds to disk -->
        <keep-generated-swfs>false</keep-generated-swfs>

        <!-- show all compiler warnings -->
        <!-- query parameter override -
?showAllWarnings=true/?showAllWarnings=false -->
        <show-all-warnings>false</show-all-warnings>

        <!-- When show-all-warnings is true, this value controls whether
or
not
             compiler override warnings are shown. When show-all-warnings
is
false,
             this value will have no effect. -->
        <show-override-warnings>true</show-override-warnings>

        <!-- Controls whether warnings are displayed when a deprecated API
is used. -->
        <show-deprecation-warnings>false</show-deprecation-warnings>

        <!-- When show-all-warnings is true, this value controls whether
or
not
                     binding warnings are shown. When show-all-warnings is
false,
                     this value will have no effect. -->
        <!-- query parameter override -
?showBindingWarnings=true/?showBindingWarnings=false -->
        <show-binding-warnings>true</show-binding-warnings>

        <!-- turn on debug to see the request and response on the server
side as well
             as debug information in client side tracing -->
        <web-service-proxy-debug>false</web-service-proxy-debug>

        <!-- turn on debug to see the request and response on the server
side -->
        <http-service-proxy-debug>false</http-service-proxy-debug>

        <!-- turn on debug to see the request and response on the server
side as well
             as debug information in client side tracing -->
        <remote-objects-debug>false</remote-objects-debug>

        <!-- display stack traces in browser error messages -->
        <show-stacktraces-in-browser>false</show-stacktraces-in-browser>

        <!-- if true, source code context lines will be shown in the error
pages -->

        <show-source-in-compiler-errors>false</show-source-in-compiler-errors>

        <!-- if true, compiler errors are logged to the Logger as errors
-->
        <log-compiler-errors>true</log-compiler-errors>

        <!-- generate an xml file in the application directory summarizing
compile
             options and symbol dependencies -->
        <create-compile-report>false</create-compile-report>

    </debugging>

    <compiler>
        <!-- locations may be specified as a URL relative to the context
root,
            a complete URL or an absolute file path -->

        <!-- location of global stylesheet -->
        <global-css-url>/WEB-INF/cfform/global.css</global-css-url>

        <!-- generate accessible swfs -->
        <!-- query parameter override - ?accessible=true/?accessible is
false;
             this override is always available -->
        <accessible>false</accessible>

        <!-- the password to include in debuggable swfs -->
        <!-- default is empty-string password -->
        <debug-swf-password></debug-swf-password>

        <!-- generate an optimized swfs; This option is ignored when a
             debug or profile swf is generated -->
        <optimize>true</optimize>

        <!-- resolve the specified namespaces to their component
definition
file -->
        <namespaces>
            <namespace uri="http://www.macromedia.com/2003/mxml";>
                <manifest>/WEB-INF/cfform/mxml-manifest.xml</manifest>
            </namespace>
        </namespaces>

        <!-- path locations of actionscript class files -->
        <actionscript-classpath>

        </actionscript-classpath>

        <!-- the location of the standard Flex instrinsics -->
        <!-- This value should not be modified unless you have changed
             the location of this standard Flex directory. -->
        <system-classes>/WEB-INF/cfform/system_classes</system-classes>

        <!-- path locations of component libraries, including
             swcs, mxml, and as components -->
        <!--
             Note: all SWCs found in the lib-path are merged together
             and resolved via priority and version.  The order is ignored.
        -->
        <!-- the standard Flex frameworks library should not be removed
-->
        <lib-path>
            <path-element>/WEB-INF/cfform/frameworks</path-element>
        </lib-path>

        <!-- path locations of the debug version of component libraries,
             including swcs, mxml, and as components -->
        <!--
             Note: debug SWCs are ignored unless the debug flag is
             set during compilation.  When the debug flag is set,
             these libraries will be merged with the regular libraries,
             but at a higher priority level.  Mixing old debug
             libraries with new standard libraries would thus be a Bad
Idea.
        -->
        <!-- the standard Flex frameworks library should not be removed
-->
        <debug-lib-path>
            <path-element>/WEB-INF/cfform/frameworks_debug</path-element>
        </debug-lib-path>

        <!--
             When headless-server is true, the system property
java.awt.headless will be set to true.
             This should be used with JDK 1.4+ on servers without graphics
cards and
             monitors.  Otherwise, the property is not set.
        -->
        <headless-server>false</headless-server>
    </compiler>

    <cache>
        <!-- cache compiled custom components as swo files -->
        <cache-swos>true</cache-swos>
        <!-- content cache for dynamically generated SWF, SWD, and HTML
-->
        <content-size>500</content-size>
        <!-- source cache for dynamically generated MXML (from JSP) -->
        <mxml-size>500</mxml-size>
        <!-- force a check for validation of page freshness every XX
seconds -->
        <http-maximum-age>1</http-maximum-age>
        <!-- check for changes to dependent files on disk every XX
seconds -->
        <!-- when production-mode is true, the file watcher runs once at
startup -->
        <file-watcher-interval>1</file-watcher-interval>
    </cache>

    <flash-player>
        <!-- enable/disable player detection -->
        <enable>true</enable>

        <!-- require 7.0.14 -->
        <!-- required player version -->
        <required-version>7</required-version>
        <!-- 'dot' release of the required player -->
        <required-major-revision>0</required-major-revision>
        <!-- minor revision number of the required player -->
        <required-minor-revision>14</required-minor-revision>

        <!-- auto-install the player on windows and ie-only -->
        <!-- When windows-auto-install is true, IE will attempt to
download
the ActiveX player without
             user intervention.  When false, the user is directed to the
download url for upgrade. -->
        <windows-auto-install>true</windows-auto-install>
        <!-- player upgrade page - users without the required Flash
version
will be directed here -->
        <download-url>{context.root
}/cfform-internal/detection-kit/upgrade_flash/upgrade_flash.html</download-url>
        <download-https-url>{context.root
}/cfform-internal/secure/detection-kit/upgrade_flash/upgrade_flash.html</download-https-url>
        <!-- activex upgrade page - the location for downloading the
ActiveX
player-->
        <activex-download-url>
http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab
</activex-download-url>
        <activex-download-https-url>
https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab
</activex-download-https-url>
        <!-- plugin upgrade page - the location for downloading the Plugin
version of the player -->
        <plugin-download-url>http://www.macromedia.com/go/getflashplayer
</plugin-download-url>
        <plugin-download-https-url>
https://www.macromedia.com/go/getflashplayer</plugin-download-https-url>
    </flash-player>

    <web-service-proxy>
        <!-- all locations may be specified as a URL relative to the web
server document root,
             or a complete http URL; to specify relative to the context
root, please
             include {context.root}
             NOTE: do not use a leading slash with {context.root} -->

        <!-- determine whether the proxy is used or bypassed.
             client - up to the client via the useProxy attribute on the
WebService, if unspecified will use the proxy
             always - always use the proxy, useProxy='false' on the
WebService will generate a Warning
             never  - never use the proxy, useProxy='true' on WebService
will generate a Warning
             -->
        <proxy-use-policy>client</proxy-use-policy>

        <!-- the web service proxy to use when calling a page over http
or -->
        <!-- when protocol is specified as http -->
        <url>{context.root}/flashproxy</url>
        <!-- the web service proxy to use when calling a page over https
or -->
        <!-- when protocol is specified as https -->
        <https-url>{context.root}/flashproxy</https-url>

        <!-- use proxy specified via flashvars or query parameter
?proxyURL=XXX -->
        <allow-url-override>false</allow-url-override>

        <!-- the external http proxy that all requests should go
through. -->
        <!-- location is the servername and port to use as the http
roxy.  -->
        <!-- username and password should only be specified when basic -->
        <!-- authentication is being used for security on the proxy. -->
        <!-- nt-domain should only be specified (along with username and
password) -->
        <!-- if NTLM authentication is being used on the proxy. -->
        <!-- <external-proxy> -->
          <!-- <location>server:8080</location> -->
          <!-- <username>username</username> -->
          <!-- <password>pwd</password> -->
          <!-- <nt-domain>domain</nt-domain> -->
        <!-- </external-proxy> -->

        <!-- Use a pooled connection manager that allows the given number
of -->
        <!-- connections.  The default is 50.  Specify 0 to turn off this
feature -->
        <!-- <max-connections>50</max-connections> -->

        <!-- Whether to accept self-signed certificates.  Dangerous in
production -->
        <allow-lax-ssl>false</allow-lax-ssl>

        <!-- a list of urls accessible via this web service proxy -->
        <!-- the {localserver} token may be added in place of actual host
and port number
            to ensure that services created with relative URLs are
allowed -->
        <whitelist>
            <!-- config for unnamed web services -->
            <unnamed>
                <url></url>
                <!--
                For security, the whitelist is locked down by default.
                Uncomment the first two urls below to enable access to all
URLs,
                or the last two urls to enable access to the local server,
                or add above the individual URLs you wish to access.
                <url>http://*</url>
                <url>https://*</url>
                <url>http://{localserver}/*</url>
                <url>https://{localserver}/*</url>
                -->
            </unnamed>
            <!-- config for named web services -->
            <!-- <named> -->
                <!-- define a web service which may be referenced by name
from mxml -->
                <!-- <service name="service"> -->
                    <!-- enables use of custom fault code on the client
for
handling authentication failures -->
                    <!--
<use-custom-authentication>false</use-custom-authentication> -->
                    <!-- wsdl location for the named service -->
                    <!--
<wsdl>http://localhost:8100/flex/flex-proxy/servicename?wsdl</wsdl> -->
                    <!-- endpoints for the named web service -->
                    <!-- <endpoints> -->
                        <!-- actual url to use when accessing the named
web
service -->
                        <!--
<endpoint>http://localhost:8100/flex/flex-proxy/servicename</endpoint> -->
                    <!-- </endpoints> -->
                    <!-- user-name and password to use when accessing this
web service -->
                    <!-- <run-as user="user" password="pwd"/> -->
                    <!-- Adds the service's wsdl and endpoints to the
unnamed whitelist.  If false, these can never be used unnamed -->
                    <!-- This should be set to false if using web
application security with this named service -->
                    <!--
<allow-unnamed-access>true</allow-unnamed-access> -->
                 <!-- </service> -->
            <!-- </named> -->
        </whitelist>
    </web-service-proxy>

    <http-service-proxy>
        <!-- determine whether the proxy is used or bypassed.
             client - up to the client via the useProxy attribute on the
HTTPService, if unspecified will use the proxy
             always - always use the proxy, useProxy='false' on the
HTTPService will generate a Warning
             never  - never use the proxy, useProxy='true' on HTTPService
will generate a Warning
             -->
        <proxy-use-policy>client</proxy-use-policy>

        <!-- all locations may be specified as a URL relative to the web
server document root,
             or a complete http URL; to specify relative to the context
root, please
             include {context.root}
             NOTE: do not use a leading slash with {context.root} -->

        <!-- the http service proxy to use when calling a page over http
or -->
        <!-- when protocol is specified as http -->
        <url>{context.root}/flashproxy</url>
        <!-- the http service proxy to use when calling a page over https
or -->
        <!-- when protocol is specified as https -->
        <https-url>{context.root}/flashproxy</https-url>

        <!-- use proxy specified via flashvars or query parameter
?proxyURL=XXX -->
        <allow-url-override>false</allow-url-override>

        <!-- the external http proxy that all requests should go
through. -->
        <!-- location is the servername and port to use as the http
roxy.  -->
        <!-- username and password should only be specified when basic -->
        <!-- authentication is being used for security on the proxy. -->
        <!-- nt-domain should only be specified (along with username and
password) -->
        <!-- if NTLM authentication is being used on the proxy. -->
        <!-- <external-proxy> -->
          <!-- <location>server:8080</location> -->
          <!-- <username>username</username> -->
          <!-- <password>pwd</password> -->
          <!-- <nt-domain>domain</nt-domain> -->
        <!-- </external-proxy> -->

        <!-- Use a pooled connection manager that allows the given number
of -->
        <!-- connections.  The default is 50.  Specify 0 to turn off this
feature -->
        <!-- <max-connections>50</max-connections> -->

        <!-- Whether to accept self-signed certificates.  Dangerous in
production -->
        <allow-lax-ssl>false</allow-lax-ssl>

        <!-- a list of urls accessible via this http service proxy -->
        <!-- the {localserver} token may be added in place of actual host
and port number
            to ensure that services created with relative URLs are
allowed -->
        <whitelist>
            <!-- whitelist config for unnamed services -->
            <unnamed>
                <url></url>
                <!--
                For security, the whitelist is locked down by default.
                Uncomment the first two urls below to enable access to all
URLs,
                or the last two urls to enable access to the local server,
                or add above the individual URLs you wish to access.
                <url>http://*</url>
                <url>https://*</url>
                <url>http://{localserver}/*</url>
                <url>https://{localserver}/*</url>
                -->
            </unnamed>
            <!-- whitelist config for named http services -->
            <!-- <named> -->
                <!-- define an http service which may be referenced by
name
from mxml -->
                <!-- <service name="service"> -->
                    <!-- enables use of custom fault code on the client
for
handling authentication failures -->
                    <!--
<use-custom-authentication>false</use-custom-authentication> -->
                    <!-- actual url to use when accessing the named http
service -->
                    <!--
<url>http://localhost:8100/flex/servicename</url> -->
                    <!-- user-name and password to use when accessing this
http service -->
                    <!-- <run-as user="user" password="pwd"/> -->
                    <!-- Adds the service's url to the unnamed whitelist.
If false, these can never be used unnamed -->
                    <!-- This should be set to false if using web
application security with this named service -->
                    <!--
<allow-unnamed-access>true</allow-unnamed-access> -->
                <!-- </service> -->
            <!-- </named> -->
        </whitelist>
    </http-service-proxy>

    <remote-objects>
        <!-- all locations may be specified as a URL relative to the web
server document root,
             or a complete http URL; to specify relative to the context
root, please
             include {context.root}
             NOTE: do not use a leading slash with {context.root} -->

        <!-- The location of the AMF Gateway. The value below is used
             when calling a page over http or when protocol is specified
as
http -->
        <amf-gateway>{context.root}/amfgateway</amf-gateway>

        <!-- The location of the AMF Gateway to use when calling a page
over
https
             or when protocol is specified as https -->
        <amf-https-gateway>{context.root}/amfgateway</amf-https-gateway>

        <!-- use proxy specified via flashvars or query parameter
?remoteURL=XXX -->
        <allow-url-override>false</allow-url-override>

        <!-- a list of urls accessible via this remote objects proxy -->
        <whitelist>
            <!-- whitelist config for unnamed objects -->
            <unnamed>
                <source></source>
                <!--
                For security, the whitelist is ALL by default.

                Uncomment the source element below to enable access to all
classes
                during development.

                We strongly recommend not allowing access to all source
files
                in production, since this exposes Java and Flex system
classes.
                <source>*</source>
                -->
            </unnamed>
            <!-- whitelist config for named objects -->
            <named>
                <!-- define a remote objects which may be referenced by
name
from mxml -->
   <object name="OrderBusinessDelegate">
      <source>com.meagle.flexro.FlexBusinessDelegate</source>
      <type>stateless-class</type>
      <use-custom-authentication>true</use-custom-authentication>
      <allow-unnamed-access>false</allow-unnamed-access>
      <roles>
          <role>OrderUser</role>
          <role>Admin</role>
      </roles>
   </object>
            </named>
        </whitelist>
    </remote-objects>
    <logging>
        <!-- level of logging - error, warn, info, debug -->
        <level>info</level>

        <!-- console messages are logged to System.out -->
        <console>
            <!-- enable/disable console logging -->
            <enable>true</enable>
        </console>
        <!-- file messages are logged to the specified file name -->
        <file>
            <!-- enable/disable file logging -->
            <enable>true</enable>
            <!-- log file location -->
            <!-- location may be an absolute path -->
            <!-- or, location may start with '/' and specify a virtual
path
which can be resolved by the getRealPath method of the ServletContext -->
            <file-name>/WEB-INF/cfform/logs/flex.log</file-name>
            <!-- maximum log file size -->
            <maximum-size>200KB</maximum-size>
            <!-- maximum number of backup log files to maintain -->
            <maximum-backups>3</maximum-backups>
        </file>
    </logging>

    <!-- Font caching significantly improves embedded font generation
times
and exists for
         the life of the server -->
    <fonts>
        <!-- Maximum number of fonts to keep in the cache -->
        <max-cached-fonts>20</max-cached-fonts>
        <!-- Controls the maximum number of character glyph-outlines to
cache for each font face -->
        <max-glyphs-per-face>1000</max-glyphs-per-face>
        <managers>
            <manager-class>macromedia.fonts.JREFontManager</manager-class>
            <!--
<manager-class>macromedia.fonts.BatikFontManager</manager-class> -->
        </managers>
        <languages>
            <!-- Defines a range of unicode settings for a particular
language -
            this is used to determine which characters from a font will be
embedded
            in a swf -->
            <!-- The flash-unicode-table.xml file (in this directory) can
be
used as a reference
                for the Flash MX 2004 UnicodeTable.xml character ranges -
you can copy the
                desired character mappings to this file and use them in
your
CSS @font-face rules -->
            <language-range>
                <lang>en</lang>
                <range>U+0020-U+007E</range>
            </language-range>
        </languages>
    </fonts>
</flex-config>
/*******************END flex-config.xml*****************/

Now Here is the invocation..........

C:\flexTasks>ant -lib c:/ANT/apache-ant-1.6.5/lib/flexTasks.jar -buildfile
mySimpleBuild.xml main
Buildfile: mySimpleBuild.xml

main:
    [mxmlc] Warning: FLEX_HOME does not exist
    [mxmlc] Warning: FLEX_HOME does not exist

BUILD FAILED
C:\flexTasks\mySimpleBuild.xml:8: Command not found: mxmlc

Total time: 0 seconds

Any ideas?
M--
This email message and any files transmitted with it contain confidential
information intended only for the person(s) to whom this email message is
addressed.  If you have received this email message in error, please
notify
the sender immediately by telephone or email and destroy the original
message without making a copy.  Thank you.

Reply via email to