前段时间研究flex工程自动编译的时候,遇到了阻碍,就放下了,直到今天每日构建的问题又一次给项目组带来了麻烦,于是我彻底愤怒了。

最后,我的怒火没有白费,写出来以发泄情绪。

【基本原理】:

adobe提供了每日构建的方法:利用ant任务以命令行的形式完全模仿flashbuilder/flashbuilder-plugin的【导出发行版】编译方式来编译。

此种方式编译出的swf的性能是最好的。

官方说明:http://help.adobe.com/zh_CN/Flex/4.0/UsingFlashBuilder/WSbde04e3d3e6474c4-59108b2e1215eb9d5e4-8000.html

【实施前准备】:

安装:jdk1.6 32位 (一定要用32位的,如果是64位的操作系统也要安装32的,64和32的jdk可以共存)

安装:flashbuilder/flashbuilder-plugin

【实施】:

1.用flashbuilder/flashbuilder-plugin将flex项目导入,配置好,并可以手动编译成功;

对于使用flashbuilder-plugin的一定要注意这一步,不要使用本地的eclipse来导入项目,要使用plugin来导入配置项目,否则无法进行命令行

编译。

因为用flashbuilder-plugin创建的工作空间下的E:\Jenkins\workspace\.metadata文件夹下,有一些命令行工具要用的东西,例如:flex工程名。

2.写ant的build.xml,build.xml的位置随意放

<?xml version="1.0"?>
<project default="main">
<target name="main">
<fb.exportReleaseBuild project="ims-flex-1.0" />
</target>
</project>

其中target标签中的name="main"就是ant的执行任务名称,project=“ims-flex-1.0”就是指定要编译的flex工程名称

3.编写调用的命令行

set WORKSPACE=E:\Jenkins\workspace

REM works with either FlashBuilderC.exe or eclipsec.exe
"D:\Adobe\Adobe Flash Builder 4 Plug-in\eclipse-host-distro\eclipsec.exe" --launcher.suppressErrors -noSplash -application org.eclipse.ant.core.antRunner -data "%WORKSPACE%" -file "%WORKSPACE%\build.xml" main
pause

上面命令是调用plugin中的eclipsec.exe来编译的。如果使用的是flahbuilder则使用flashbuilderc.exe

  • WORKSPACE就是eclipse的工作空间
  • -file用来指定build.xml的位置
  • 最后一个参数main就是指定在build.xml中要执行的任务名称

4.运行批处理,开始自动编译,编译后,进入flex工程目录,其中会有bin-release目录,这里就是编译后的文件。

【吐槽】

adobe的文档写的如此之烂,文字说明根本没用,只能通过揣测批处理的意义,经过多次尝试失败后才最终解决。

使用Flashbuilder/Flashbuilder-plugins搭建Flex工程每日构建(自动化构建)的方法的更多相关文章

  1. 边缘化搭建 DotNet Core 2.1 自动化构建和部署环境(下)

    写在前面 本篇文章是上一篇边缘化搭建 DotNet Core 2.1 自动化发布和部署(上)的后续操作,本文主要讲解如何开启Docker Remote API,开启Remote API后的权限安全问题 ...

  2. 边缘化搭建 DotNet Core 2.1 自动化构建和部署环境(上)

    写在前面 写这篇文章的缘由是由于笔者的对新兴技术方向有所追求,但个人资产有限,只能容许购买一台阿里云低配1核2G服务器.服务器上搭建了 Centos7 & Docker & Jenki ...

  3. kotlin+springboot+mybatis-puls+mysql搭建gradle-web工程

    kotlin+springboot+mybatis-puls+mysql搭建web工程 ​ 前段时间研究了spring security及OAuth2系列之后,本来打算研究spring的,但是部门发生 ...

  4. 搭建Android工程的步骤及其第一个安卓程序

    1.安卓系统架构 1>底层是Linux系统 2>函数库层 由C或C++写的 3>Application frameWork应用的框架层 4>顶层是应用层 2.JVM与DVM介绍 ...

  5. 搭建Maven工程的时候,做单元测试,报ClassNotFoundException

    搭建Maven工程的时候报错 问题原因是在spring.xml中配置的  classpath:config.properties  没有在工程中创建.

  6. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_14-网关-介绍网关及搭建网关工程

    4 Zuul网关 4.1 需求分析 网关的作用相当于一个过虑器.拦截器,它可以拦截多个系统的请求. 本章节要使用网关校验用户的身份是否合法. 4.2 Zuul介绍 什么是Zuul? Spring Cl ...

  7. vue实战_从头开始搭建vue工程

    写在前面:vue工程入口文件分析 /index.html,/src/main.js,/src/APP.vue /index.html文件示例: <!DOCTYPE html> <ht ...

  8. 我是如何进行Spring MVC文档翻译项目的环境搭建、项目管理及自动化构建工作的

    感兴趣的同学可以关注这个翻译项目 . 我的博客原文 和 我的Github 前段时间翻译的Spring MVC官方文档完成了第一稿,相关的文章和仓库可以点击以下链接.这篇文章,主要是总结一下这个翻译项目 ...

  9. 使用Docker搭建Jenkins+Docker持续集成环境(自动化构建发布部署)

    本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...

随机推荐

  1. m2e插件的新下载地址

    今天在按照<Maven实战>这本书给eclipse配置maven的m2eclipse插件的时候发现,书中写的老的下载地址http://m2eclipse.sonatype.org/site ...

  2. MVC-EditorFor与TextBoxFor的区别

    EditorFor会根据后面提供的数据类型自动判断生成的控件类型(比如TextBox,CheckBox等): TextBoxFor生成的只是一个TextBox.

  3. 成为JavaGC专家(2)—如何监控Java垃圾回收机制

    什么是GC监控? 垃圾回收收集监控指的是搞清楚JVM如何执行GC的过程,例如,我们可以查明: 1.        何时一个新生代中的对象被移动到老年代时,所花费的时间. 2.       Stop-t ...

  4. 10 Best Responsive HTML5 Frameworks and Tools

    http://designinstruct.com/roundups/html5-frameworks/

  5. UIMenuController搭配UIPasteboard,执行拷贝-黏贴操作-b

    一.基本概念 UIKit框架中,可以直接执行拷贝黏贴操作的有:UITextView.UITextField和UIWebView,其他控件需要实现相关方法. 关于UIPasteboard ·黏贴板是ap ...

  6. AJax跨域请求百度音乐接口数据展示页面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. linux 安装Tesseract-OCR

    linux 安装Tesseract-OCR 准备工作:一.编译环境: 1. gcc gcc-c++ make(这个环境一般机器都具备,可以忽略) yum install gcc gcc-c++ mak ...

  8. c#中怎么删除一个非空目录

    System.IO.Directory.Delete(@"C:\abc\",true)

  9. POJ 3274 Gold Balanced Lineup(哈希)

    http://poj.org/problem?id=3274 题意 :农夫约翰的n(1 <= N <= 100000)头奶牛,有很多相同之处,约翰已经将每一头奶牛的不同之处,归纳成了K种特 ...

  10. ANDROID_MARS学习笔记_S01原始版_008_Looper\Bundle异步消息处理

    一.流程 1.自定义Handler,重写handleMessage(Message msg),用msg得到bundle,从而得到传递过来的数据 2.开启android.os.HandlerThread ...