本文地址: http://blog.csdn.net/sushengmiyan/article/details/38316829
本文作者:sushengmiyan
-------------------------------------------------------------资源链接-----------------------------------------------------------------------
翻译来源  Sencha Cmd官方网站:http://docs.sencha.com/extjs/5.0.0/cmd/advanced_cmd/cmd_build.html

------------------------------------------------------------------------------------------------------------------------------------------------

Sencha cmd提供的构造脚本是将足见绑定在一起并且是使许多低级命令(像编译)变得自动化,很少有出现适合一个工具满足所有需求的这样的解决方案,所以构造脚本提供了很多可以进行选择的选项让你去配置和客户化的定制这些行为,这个指引将要解释在构造脚本后面的规则以及你可能需要去修改来适应你需求的做法。

阅读本文需要你阅读之前两章的内容

1.introduction to sencha cmd

2.using sencha cmd

工作空间介绍

-----------------------

本质上来讲,sencha app build 命令执行了基本的校验并且调用 apache ant 去构造,构造的脚本可以在”build.xml“文件中查看,该文件就在应用程序的根文件夹下。

特别的,它会调用脚本中的”build“目标,这意味着全部的过程都可以被检测扩展并且可以修改。

因为sencha app build 简单的调用了ant中”build.xml“中的”build“目标,你可以直接操作ant来达到相同的效果。这对于使用Eclipse或者netbeans的用户来说是很有帮助的

同样的,对于了解ant的来说,集成服务也是可持续的。

生成的”build.xml“ 是最小的一个ant脚本,可以使用ant的import功能来导入”.sencha/app/build-impl.xml“类似的文件任务。由于"build.xml"后期是可能会被修改的,但是”.sencha/app//*-impl.xml“文件是不会被修改的,这些文件会被sencha app upgrade程序给更新替换掉,除非必须否则不要修改这些文件。然而这些文件时非常优秀的,只是修改需要特别留意。

构造目标

---------------

下面的目标定义了应用程序构造的产生到结束的整个过程,除了init方法,其他目标都有一个属性可以设置为从1开始的数字。

init  refresh resolve js resources sass slice page native-package

除了init其他目标都可以通过前缀增加 skip.的方式来时目标无效。

比如 skip.slice = 1

如果只想更新一部分就可以只想这样的命令,比如只更新sass 可以执行 sencha ant sass就只会构造sass

配置你的工作空间

------------------------------

在sencha app build命令脚本后的许多方面是通过属性来控制的,这样说来,就有两种配置方式,1.通过配置属性来配置,2.通过构造属性来配置

1.配置属性

想要看当前配置的信息,可以执行如下命令  sencha diag show

多数情况下,你可以通过前缀告诉他们从何而来。

app. 参照 app,json 和.sencha/app/sencha.cfg

workspace. 参见workspace.json和.sencha/app/sencha.cfg

framework. 参考cmd/sencha.cfg在sencha cmd 安装目录中

cmd.可以再sencha cmd的安装目录看到

使用配置文件是使用比较广泛的也是被advanced sencha cmd推荐的。

2.构造配置属性

构造脚本定义了好多其他属性,这些属性都是以build.来结尾的

想看当前的值得话,在你应用程序目录下调用以下命令

sencha ant .props

设置这些build属性

许多方式可以配置你的构造,最简单的方方就是编辑他们的配置属性文件,决定要修改哪一个文件你最好知道这些文件什么时候被调用。

”local.properties“: 目前来说,是第一个载入的,这个文件的设计初衷就是给当前本地机器使用的。这个文件就不应该提交到版本控制中被别人使用,这些设置比其他任何文件优先级都高,

2.”.senche/app/${build.enviroment}.properties“--根基是build.enviroment属性文件,下方的一个会被载入,设置这些文件的属性可以让你从开始构建的时候获取不同的数值

”.sencha/app/native.properties“

".sencha/app/package.properties"

".sencha/app/production.properties"

".sencha/app/testing.properties"

3.".sencha/app/build.properties"

这些属性石在后期加载的,比build-enviroment-specific属性加载的晚一些的,这些属性是被所有的环境变量使用的,这些文件 是被设计为客户化定制使用的。

4.“sencha/app/defaults.properties” 这些属性最后被加载这些文件是被sencha cdm拥有的,并且当有新属性更高的时候这里会更新。这个文件服务了一些属性集,不应该被编辑的,可以修改其他的来达到你的目的。

自定义

----------

许多普遍的需求是通过构造需求的,但是了解所有的方式是不可能的。当配置选项的时候不能达到目的的时候下一个自定义的设置就可以实现了通过“build.xml”文件ant脚本来实现。

另外,对于import命令来说,build.xml包含了一些不同的扩展点,这些都是在可以选择的所有ant 目标和后期命名的过程中的,当你使用-before或者-after时。最常见的前缀扩展点如下:

init(-befor-init  -after-init)

refresh(-before-refresh  -after-refresh)

resolve(-before-resolve -after-resolve)

js(-before-js  -after-js)

resources(-beifore-resources  -after-resources)

sass(-before-sass -after-sass)

slice(-befor-slice  -after-slice)

page(-befor-page -after-page)

native-package(-native-packege  -after-packege)

为了执行增加的before after处理步骤,给build.xml文件增加一个属性 这些目标可以在你的 ant执行的时候被调用

    1. <target name="-after-page">
    2. <tstamp>
    3. <format property="THISYEAR" pattern="yyyy"/>
    4. </tstamp>
    5. <!--
    6. The build.classes.file property holds the full path to the "all-classes.js"
    7. file so we use that variable rather than hard-code the name.
    8. -->
    9. <move file="${build.classes.file}" tofile="${build.classes.file}.tmp"/>
    10. <concat destfile="${build.classes.file}">
    11. <header filtering="no" trimleading="yes">
    12. /*
    13. * Copyright (C) ${THISYEAR}. All Rights Reserved.
    14. * My Company Name
    15. */
    16. </header>
    17. <fileset file="${build.classes.file}.tmp"/>
    18. </concat>
    19. <delete file="${build.classes.file}.tmp" />
    20. </target>

[ExtJS5学习笔记]第三节 sencha cmd学习笔记 生成应用程序构建的内部细节的更多相关文章

  1. [ExtJS5学习笔记]第二节 Sencha Cmd 学习笔记 使你的sencha cmd跑起来

    本文地址: http://blog.csdn.net/sushengmiyan/article/details/38313537 本文作者:sushengmiyan ----------------- ...

  2. [EXtJS5学习笔记]第一节 Sencha Cmd 学习笔记 简介 Sencha Cmd是什么

    本文地址: http://blog.csdn.net/sushengmiyan/article/details/38295575 本文作者:sushengmiyan ----------------- ...

  3. 1、Sencha cmd学习笔记(一) 使你的sencha cmd跑起来

    带着Ext JS 5来使用sencha cmd -------------------------------------------------------------------  这个指导通过处 ...

  4. Ext Sencha Cmd 6 环境安装

    Sencha Cmd安装笔记 在使用前端框架ExtJs前,需对其环境加以部署,对自己的安装过程加以记录. 建议大家在安装时,最好使用VPN,个中缘由,生在跳槽的程序袁应该都懂吧.不然ruby相关命令执 ...

  5. [extjs5学习笔记]第三十八节 sencha CMD 6.0.0.220版本安装

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/46740381 简介 sencha cmd 6安装过程不需要UAC控制了对于widnow ...

  6. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  7. 20145213《Java程序设计学习笔记》第六周学习总结

    20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...

  8. Android(java)学习笔记219:开发一个多界面的应用程序之两种意图

    1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...

  9. 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)

    强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...

随机推荐

  1. win7文件夹图标中多了一把小锁打不开文件夹怎么办?

    win7文件夹图标中多了一把小锁打不开文件夹怎么办?解决办法一:右击目录→取得管理员权限!该方法适用于win7旗舰版.解决办法二:右击目录→属性→安全→高级→选择everyone→更改权限→勾上完全访 ...

  2. Windows Store App 过渡动画

    Windows Store App 过渡动画     在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...

  3. iOS开发拓展篇—音频处理(音乐播放器5)

    iOS开发拓展篇—音频处理(音乐播放器5) 实现效果: 一.半透明滑块的设置 /** *拖动滑块 */ - (IBAction)panSlider:(UIPanGestureRecognizer *) ...

  4. jsp开发知识

    1.在JSP中:Java部分是在服务器端执行的:js部分是在客户端的浏览器执行的:二者完全不相干.因此直接在JSP页面上是无法在js.java和HTML变量之间进行调用的. 2.表单 <form ...

  5. HDU 3308 LCIS

    题意: U A B: 把第A个数变成BQ A B: 输出[A,B]最长连续上升子序列(注意是连续  相当于子串) 思路:单点更新 ,区间合并几下左边开头最小  和右边结束最大的两个数即可. #incl ...

  6. html 选择图片后马上展示出来

    document.getElementById('file4').onchange = function(evt) { // 如果浏览器不支持FileReader,则不处理 if (!window.F ...

  7. RoseRT 建模学习

    目录: 一.RoseRT理论知识 二.一个完整模型的建立 三.TD-SCDMA(UE侧)RRC层建模的学习 四.LTE的RRC层建模(1.自主完成‘2.也可以是L2) 五.参考文献 一.RoseRT理 ...

  8. web前端入门:一小时学会写页面

    一小时学会写页面 作为一个懒癌晚期患者,总是习惯找各种简单的解决问题的方法,也习惯性把问题简单化,所以今天想分享给大家简单的web前端入门方法.既然题目已经定了一个小时那么废话就不多说了,计时开始 1 ...

  9. checkbox选中与取消选择

    先上代码 <form> 你爱好的运动是?<br/> <input type="checkbox" name="items" val ...

  10. python模块之time

    Python中的时间模块. 1.在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素. 2.UTC(Coordinated U ...