//////////////////////////////////////////////////////////////////////////////// | |
// | |
// Licensed to the Apache Software Foundation (ASF) under one or more | |
// contributor license agreements. See the NOTICE file distributed with | |
// this work for additional information regarding copyright ownership. | |
// The ASF licenses this file to You under the Apache License, Version 2.0 | |
// (the "License"); you may not use this file except in compliance with | |
// the License. You may obtain a copy of the License at | |
// | |
// http://www.apache.org/licenses/LICENSE-2.0 | |
// | |
// Unless required by applicable law or agreed to in writing, software | |
// distributed under the License is distributed on an "AS IS" BASIS, | |
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
// See the License for the specific language governing permissions and | |
// limitations under the License. | |
// | |
//////////////////////////////////////////////////////////////////////////////// | |
=1= Introduction | |
FlexTasks is an automated build tool for Flex application | |
development. It is built on top of the Apache Ant project. | |
FlexTasks is intended for both internal and external use in the | |
absence of FlexTasks. | |
=2= Description | |
- Scenario | |
Paul has been assigned a bug to resolve with only a few hours to | |
spare. He refuses to use FlexBuilder, as that would take focus away | |
from his Emacs window. He decides to write an ant build file to | |
automate the build process: | |
<target name="bug"> | |
<mxmlc file="${bug}.mxml" | |
incremental="false" | |
strict="true" | |
verbose-stack-traces="true" | |
keep-generated-actionscript="true"> | |
<load-config filename="../frameworks/flex-config.xml" /> | |
<source-path path-element="../frameworks" /> | |
<source-path path-element="../../enterprise/frameworks" /> | |
</mxmlc> | |
</target> | |
He then types into his shell (vicariously through Emacs), | |
$ ant bug | |
and within seconds the Flex application is built and ready for | |
inspection by Exterminator Paul. | |
- Details | |
Users must first install FlexTasks by placing the distribution jar in | |
the "lib" directory of their ant install. This will allow them to use | |
tasks defined by FlexTasks without any special modifications to their | |
build files (such as including a <taskdef>). | |
FlexTasks exposes all of the command line options of mxmlc through the | |
attributes and nested elements of an <mxmlc> task. The full name and | |
abbreviated name of a command line option can be used interchangably | |
when the option is implemented as an attribute. For example, | |
<mxmlc file="foo.mxml" compiler.as3="true" /> | |
and | |
<mxmlc file="foo.mxml" as3="true" /> | |
are both acceptable ways to pass the -compiler.as3 option to mxmlc. | |
All boolean options are implemented as attributes of the <mxmlc> | |
element. | |
All options that take a single argument are also implemented as | |
attributes of the <mxmlc> element. The descriptions of these types of | |
options vary in the mxmlc documentation. If an option is documented as | |
taking a <string>, <filename>, <int>, or some sort of path element, | |
and that option is non-repeatable, then this option is set by setting | |
an attribute in the <mxmlc> element. | |
Options that are repeatable, or take more than one argument (such as | |
-default-size) are implemented as nested elements with attributes | |
corresponding to the names given to arguments in the mxmlc | |
documentation. For example, if one desired to pass the option | |
-default-size 800 600 to mxmlc, | |
<mxmlc file="foo.mxmlc"> | |
<default-size width="800" height="600" /> | |
</mxmlc> | |
would accomplish this. | |
It is an error to include multiple nested elements corresponding to a | |
non-repeatable option. | |
There are two nested elements that can contain nested elements: | |
<fonts> and <metadata>. These elements encapsulate all options | |
starting with "compiler.fonts" and "metadata", repectively. What has | |
been described thus far applies to these elements as well. For | |
example, if one wanted to include contributors names along with a | |
description of the application, the following would accomplish this: | |
<mxmlc file="foo.mxmlc"> | |
<metadata description="foo app"> | |
<contributor name="Joe" /> | |
<contributor name="Mike" /> | |
</metadata> | |
</mxmlc>. | |
Special case: the compiler.fonts.languages.language-range option is | |
set by adding to <fonts> a <language-range> nested element, rather | |
than a <languages.language-range> element. It may be wise to change | |
this in the future. | |
For more information, see the FlexTasks page on the flexteam wiki. |