Flex项目ant编译脚本初探

时间:2021-08-07 08:48:27
 

 费了九牛二虎之力,终于将我做的项目的ant编译脚本写出来了。这个过程中,遇到一个问题,不大,但是前后弄了快一周。开始先学ant,只不过是将别人的ant脚本copy过来,自己改了改,不成功。做了一个类似的小例子,却可以成功。并且项目在运行ant脚本后,不成功也就罢了,也不提示错误信息。所以根本就不知道是什么错误导致的编译失败。只是运行到下面这一句就结束了。

Loading configuration file C:\Program Files\Adobe\Adobe Flash Builder 4.5\sdks\3.6.0\frameworks\flex-config.xml

就这样,自己找了一天的问题,也没有做出来,然后就搁起来了。

后来,继续研究这个问题,看为什么编译不成功。然后在自己的机器上运用同样的ant脚本的代码,也是编译失败,但是错误信息却报出来了。现在不明白这个问题,为什么同样的ant脚本的错误信息,在一台机器上不能显示出来,而在另外一台机器上就可以呢?现在在猜测是不是ant版本的问题。

下面将ant脚本示例和调试过程中遇到的错误贴出来,希望大家遇到同样问题时可以少走点弯路。

ant脚本示例:

build.xml文件:

<project name="Ant build sample" basedir="." default="main">

<!-- load user configuration properties -->

<property file="build.properties" />

<property name="APP_ROOT" value="src"/>



<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />



<target name="prepareEnv">

<mkdir dir="${basedir}/build"/>

</target>



<target name="main" depends="prepareEnv">

<path id="src.files">

<fileset dir="${src-dir}">

<include name="**/**"/>

</fileset>

</path>

<echo message="${APP_ROOT}"/>

<mxmlc file="${APP_ROOT}/aaaaaa.mxml"

output="build/aaaaaa.swf"

actionscript-file-encoding="UTF-8"

keep-generated-actionscript="false"

incremental="true"

>



<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>

<source-path path-element="${FLEX_HOME}/frameworks"/>

<compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">

<include name="libs"/>

</compiler.library-path>

<compiler.library-path dir="${basedir}" append="true">

<include name="libs"/>

</compiler.library-path>

<compiler.source-path path-element="${src-dir}"/>

</mxmlc>

</target>



</project>

Build.project文件:


###### Flex Properties ##############################

# change this path to your flex sdk directory

# Use "/" in your directory path e.g. C:/FlexSDK/3.0.0

FLEX_HOME=C:/Program Files/Adobe/Adobe Flash Builder 4.5/sdks/3.6.0



###### Project Properties ###########################



src-dir=${basedir}\\src


 在编写过程中遇到的问题:

错误一:

Buildfile: E:\workspacefortest\aaaaaa\build.xml

[taskdef] Could not load definitions from resource flexTasks.tasks. It could not be found.

prepareEnv:

main:

[echo] src



BUILD FAILED

这是因为:<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />中,classpath路径错误,在这个路径中根本就找不到flexTask.jar文件。应该检查一下"Flex_HOME"路径是否正确。

错误二:

Buildfile: E:\workspacefortest\aaaaaa\build.xml

prepareEnv:

main:

[echo] src

[mxmlc] Loading configuration file C:\Program Files\Adobe\Adobe Flash Builder 4.5\sdks\3.6.0\frameworks\flex-config.xml

[mxmlc] Error: unable to open '/src/aaaaaa.mxml'

[mxmlc] Use 'mxmlc -help' for information about using the command line.



BUILD FAILED

E:\BPM\workspacefortest11\workspacefortest\aaaaaa\build.xml:25: mxmlc task failed



Total time: 657 milliseconds

原因:aaaaaa.mxml文件没有被找到。也就是说“/src/aaaaaa.mxml”路径错误。在此项目中改为“src/aaaaaa.mxml”就可以了。

错误三:

[mxmlc] E:\client\client\src\client\view\rightPanel.mxml(19): Error: unable to resolve 'client/view/assets/up_arrow.gif' for transcoding

[mxmlc] [Embed(source="client/view/assets/up_arrow.gif")]

[mxmlc] E:\BPM\client\client\src\client\view\rightPanel.mxml(19): Error: Unable to transcode client/view/assets/up_arrow.gif.

[mxmlc] [Embed(source="client/view/assets/up_arrow.gif")]



BUILD FAILED

E:\client\client\build.xml:25: mxmlc task failed

原因:图片的路径不正确导致的。

开始的图片的路径是:

[Embed(source="client/view/assets/up_arrow.gif")]

应该改为:

[Embed(source="/client/view/assets/up_arrow.gif")]