日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

phing用户手册第四章Getting Started译文

發布時間:2024/4/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 phing用户手册第四章Getting Started译文 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本章是phing的入門篇,查看 原文請猛擊這里。

XML And Phing
一個合法的Phing構建文件有以下幾部分構成: 1.文檔序言 2.唯一的根元素<project> 3.一些Phing的type元素(比如<property>, <fileset>, <patternset>等) 4.一個或多個<target>元素,每個target包含內建或用戶自定義的Phing task元素(例如<install>, <bcc>等)。
Writing A Simple Buildfile Foobar項目將一些php文件從源目錄安裝到目標目錄,并將這些文件作了打包處理。 <?xml version="1.0" encoding="UTF-8"?> <project name="FooBar" default="dist"><!-- ============================================ --><!-- Target: prepare --><!-- ============================================ --><target name="prepare"><echo msg="Making directory ./build" /><mkdir dir="./build" /></target><!-- ============================================ --><!-- Target: build --><!-- ============================================ --><target name="build" depends="prepare"><echo msg="Copying files to build directory..." /><echo msg="Copying ./about.php to ./build directory..." /><copy file="./about.php" tofile="./build/about.php" /><echo msg="Copying ./browsers.php to ./build directory..." /><copy file="./browsers.php" tofile="./build/browsers.php" /><echo msg="Copying ./contact.php to ./build directory..." /><copy file="./contact.php" tofile="./build/contact.php" /></target><!-- ============================================ --><!-- (DEFAULT) Target: dist --><!-- ============================================ --><target name="dist" depends="build"><echo msg="Creating archive..." /><tar destfile="./build/build.tar.gz" compression="gzip"><fileset dir="./build"><include name="*" /></fileset></tar><echo msg="Files copied and compressed in build directory OK!" /></target> </project>

一個phing的構建文件通常以build.xml命名。如果沒有指定文件名,phing會將build.xml作為默認執行的文件。

執行上面構建文件中的默認target,只要直接運行phing。 這將執行名為dist的target。執行構建文件中的task時將會輸出一些信息,顯示受影響的文件。 如果要執行其它target,只要在命令行中寫明相應的target名字即可。例如要執行名為build的target,只要執行:phing build即可。 其它命令行參數請參見附錄A(Fact?Sheet)。
Project Element 文檔序言之后的第一個元素就是根元素<project>。其它元素必須包含在<project>之中。它有以下屬性:
屬性 含意 是否必須
name 項目名稱
basedir 當前項目的起始目錄,“.”表示當前目錄。 注意:如果未指定此參數,則構建文件的父目錄將被設為默認值。
default 指定默認的target。如果在調用當前文件時未指定target, 將執行默認target。
description 項目描述

Target Element 一個target可以依賴其它target。Phing會處理它們之間的依賴關系。 注意,Phing的depend屬性僅能指定target的執行順序,不能確認依賴的target一定執行。當被依賴的target沒有必要執行時,Phing就不會執行它。 Phing按照從左至右的順序執行depends屬性中指定的target。注意,一個被依賴的target可能在早在之前由于另一個依賴關系的存在而被執行過,這時它將不會再被執行。 下面的例子將說明這一點: <target name="A" /> <target name="B" depends="A" /> <target name="C" depends="B" /> <target name="D" depends="C,B,A" /> 假定我們想執行target D。根據它的depends屬性,你可能會認為執行順序會是,C,B,A。錯!C依賴B,B依賴A,因此A會先執行,然后是B,接下來是C,最后是D。 一個target只會執行一次,即使有很多taget依賴它時也是如此。 description屬性用于描述此target,命令行模式時可以通過-projecthelp選項將其打印出來。
Task Elements 一個task是一段可以被執行的php代碼。這段代碼完成一個特定的功能(比如安裝文件)。它在構建文件中定義,由Phing來調用。 task的基本結構如下: <name attribute1="value1" attribute2="value2" ... /> name是task名稱,attributeN是屬性名,valueN是屬性值。 有一系列的core task(參見附錄B,Core Tasks)以及一些optional task。你也可以很方便的定義自己的task(參見第6章,Extending Phing)。 task可以被賦予一個id屬性: <taskname id="taskID" ... /> 可以在其它task中通id引用這個task。
Property Element property是構建文件中的重要變量。通過PropertyTask設定property,也可以通過命令方式設定(命令行中設定的property值會覆蓋構建文件中的同名property值)。一個property只能有一個名字和一個值。property可以成為task的屬性值,使用時只需要將property的名字放在“${”和"}"之間即可。例如,假設我們定義了一個property叫作BC_BUILD_DIR,它的值為‘build’,我們可以這樣使用它:${BC_BUILD_DIR}/en。這條語句會被解析為build/en。 如果你使用了沒有通過property task定義的property,phing會從系統的環境變量中查找是否有同名property。例如,假如你使用了${BCHOME},但你沒有在命令行或構建文件中定義它,而環境變量中存在此值,那phing就會使用環境變量中的BCHOME值。
Built-in Properties phing提供了訪問系統屬性的方法,其用法和通過<property>task定義的屬性一樣。比如,${os.name}代表的操作系統的名子。更多信息可參見附錄A中的Built-In Properties。
More Complex Buildfile <?xml version="1.0" encoding="UTF-8" ?><project name="testsite" basedir="." default="main"><property file="./build.properties" /><property name="package" value="${phing.project.name}" override="true" /><property name="builddir" value="./build/testsite" override="true" /><property name="srcdir" value="${project.basedir}" override="true" /><!-- Fileset for all files --><fileset dir="." id="allfiles"><include name="**" /></fileset><!-- ============================================ --><!-- (DEFAULT) Target: main --><!-- ============================================ --><target name="main" description="main target"><copy todir="${builddir}"><fileset refid="allfiles" /></copy></target><!-- ============================================ --><!-- Target: Rebuild --><!-- ============================================ --><target name="rebuild" description="rebuilds this package"><delete dir="${builddir}" /><phingcall target="main" /></target> </project>


這份構建文件首先定義了一些property。然后定義了一個fileset和二個target。下面我們來快速解讀下這份文件。

project標簽中的前五行用于定義property。它們展現了property標簽的兩種使用形式: 1.第二個property標簽只包含了一個file屬性。這個值必須對應一個property文件,可以使用絕對或相對路徑(文件格式參見附錄I,File Formats)。 2.標簽中含有name和value屬性。執行后,可以通過${name}的方式取得value值。
接下來我們看<fileset>標簽。它定義了一個文件集合。你可以使用inlude和exclude標簽來加入或排除文件。如果給fileset設置了id屬性,那么可以通過id引用該fileset。
下面說一說雙星表達式“**”。這個特定的正則表示所有子目錄下的所有文件。而一星“*”,只表示當目錄下的所有文件。 例: **/*.phps 表示當前目錄下,所有子目錄中的后綴為phps的文件。
第一個task是一個<copy>。注意copy標簽中的fileset,它沒有包含include或是exclude元素,而是通過refid引用了之前創建好的一個fileset。通過這種方式,你可以定義一個fileset,然后多次在構建文件中使用。
在第二個target中唯一值得注意的就是<phingcall> 標簽(更多信息可參見PhingCallTask)。這個task執行了和自己位于同一文件中的另外一個target。第二個target刪除了build目錄,然后調用main重新構建項目。
如果在命令行中使用-D參數給property賦值,則構建文件中的同名property的值將會被覆蓋。例如,如果在命令行中執行 phing -Dbuilddir=/tmp/system-test 上例中的builddir值將不再是./build/testsite,而是/tmp/system-test。


轉載于:https://www.cnblogs.com/snake-hand/p/3144956.html

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的phing用户手册第四章Getting Started译文的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。