在Jenkins中编译Flash

时间:2014-03-28 16:21:05

标签: flash ant jenkins

我们99%是Java商店,我们使用Jenkins作为CI工具。最近,我们需要编译和构建一些.NET项目,并且我能够设置一个Jenkins从站来实现这一点。

有一个项目作为构建过程的一部分编译Flash应用程序。它附带一个build.xml并在Ant下运行。有两个目标,一个名为buildandpost,另一个名为buildandpost_withFlash。它运行此编译任务:

<target name="compile" description="compile flash and copy to dist" >

    <exec dir="src/flash" 
        executable="C:/Program Files/Adobe/Adobe Flash CS3/flash.exe"  
        searchpath="true" >
        <arg line="compileProject.jsfl"/>
    </exec>

    <echo message="Flash exited" />
    <fail message="Flash Compile produced errors">
        <condition>
            <isfileselected file="src/flash/compile_log.txt">
                <and>
                    <contains text="Error" casesensitive="no"/>
                    <contains text="Warning" casesensitive="no"/>
                </and>
            </isfileselected>
        </condition>
    </fail>

</target>

当使用buildandpost_withFlash目标运行Jenkins时,我注意到Jenkins将启动编译任务,然后在没有做任何事情的情况下坐在那里直到我杀死这个工作。日志中没有打印任何内容。运行buildandpost任务,该任务执行buildandpost_withFlash所做的所有操作而无需编译。

我打开了构建服务器,运行了Ant buildandpost_withFlash目标,令我惊讶的是,在编译过程中打开了一个GUI。我没有做任何事情。 GUI在编译后关闭,Ant继续,但我现在意识到Jenkins无法运行compile任务,因为没有与其任务相关的终端。

有没有办法在不打开GUI的情况下运行此编译?我可以在不打开VisualStudio的情况下编译VisualStudio项目。我可以用Flash做到这一点吗?这是CS3。否则,我将无法使用Jenkins进行构建。

1 个答案:

答案 0 :(得分:0)

编译什么? AS3? FLA? SWF? SWC?

mxmlccompc。两者都有ANT任务,以及命令行和.jar。

在我的flash项目中,我们使用mxmlc编译AS3代码到SWF。没有涉及GUI 但是,要发布FLA,需要运行Flash Builder GUI,但只要用户不需要输入(例如弹出错误或警告消息时),它就可以正常运行(<] p

您提到buildandpost实际上已取得成功并执行buildandpost_withFlash所做的所有操作,因此如果使用buildandpost时遇到问题,那么

<强> 编辑:
以下是有关使用mxmlc ant任务的文档 http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf678b2-7ffc.html

但是,如果您不熟悉Flash,则无法将.jsfl文件转换为mxmlc步骤

基本上你有一个黑盒子(.jsfl)并且你不知道底层发生了什么,因此你无法将它翻译成另一个脚本。如果您说它将.as3编译为.swf,我们本可以尝试一些东西,但是您说它也会吐出其他文件......所以这里有相当多的逻辑{ {1}},仅仅是.jsfl无法实现的。如果你不能将黑盒子翻译成Jenkins可以轻松处理的脚本,你的另一个选择是按原样运行blackbox,即运行该.exe文件。

我只能提出以下建议:
Open Excel on Jenkins CI
不要介意mxmlc部分,请将excel.exeflash.exe替换为参数,但必须提供完整路径。