2014-03-28 63 views
0

我们99%是Java商店,我们使用Jenkins作为CI工具。最近,我们需要编译和构建一些.NET项目,并且我可以设置一个Jenkins从站来执行此操作。在Jenkins中编译Flash

有,作为构建过程的一部分编译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目标运行詹金斯,我注意到,詹金斯将开始编译任务,然后坐在那里什么也不做,直到我杀了这份工作。日志中没有打印任何内容。运行buildandpost任务,该任务执行buildandpost_withFlash所做的所有操作,而不进行编译。

我打开构建服务器,跑了蚂蚁buildandpost_withFlash目标让我吃惊,一个GUI打开了,而编译正在发生。我不必做任何事情。 GUI编译完成后,Ant继续,但我现在意识到Jenkins无法运行compile任务,因为没有终端与其任务相关联。

有没有一种方法来运行这个编译不开放的GUI?我可以在不打开VisualStudio的情况下编译VisualStudio项目。我可以用Flash做这个吗?这是CS3。否则,我将无法与詹金斯合作。

回答

0

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

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

在我的闪存项目,我们正在编制,AS3代码中使用mxmlc的SWF。没有涉及的GUI。
因为虽然发布FLA文件,需要Flash Builder中的GUI来运行,但它运行良好,没有任何问题,只要没有来自用户需要输入你刚才提到(例如,当错误或警告信息弹出)

buildandpost实际上是成功的,并做了buildandpost_withFlash所做的一切,所以如果使用buildandpost时出现问题呢?

编辑:
这是在使用了mxmlc的蚂蚁任务 http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf678b2-7ffc.html

不过,如果你不熟悉的Flash文档,您将无法到.jsfl文件翻译成mxmlc步骤

基本上你有一个黑盒子(.jsfl),你不知道底下发生了什么,因此你不能把它翻译成另一个脚本。如果你会说,它编译.as3.swf,我们可以尝试的东西,但你说的也吐出来的其他文件......所以有相当多的逻辑在.jsfl,不能被仅仅实现的东西mxmlc。如果您无法将黑盒转换为Jenkins可以轻松处理的脚本,则您的其他选项按原样运行黑盒,即运行该.exe文件。

我只能建议如下:
Open Excel on Jenkins CI
不必介意excel.exe部分,替换成你的flash.execompileProject.jsfl其次作为参数,但是你必须提供完整路径。

+0

正在执行的命令是'C:/ Program Files/Adob​​e/Adob​​e Flash CS3/flash.exe compileProject.jsfl'。编译的输出是几个'* .swf'文件,'* .js'和'* .html'。我会看看我们是否安装了'mxmlc'。 –

+0

刚刚在整个Adobe文件夹中搜索了任何和所有'* .exe'文件。没有任何类型的'mxmlc'文件。我不是Flash开发人员,也没有使用Flash。我会看看詹金斯是否可以在控制台运行时控制它。这样,它将能够打开GUI。 –

+0

[这里有mxmlc.exe](http://www.senocular.com/flash/tutorials/as3withmxmlc/),但我并不是建议使用它。最好的方法是直接使用jar。 – Slav