The following XML file shows a basic Phing build file skeleton that can be used as a starting point for your own build files. See the references in Appendix A, Fact Sheet and Appendix B, Core tasks for more detailed information on properties and tasks.
<?xml version="1.0" encoding="UTF-8"?> <!-- ========================================================================= The root tag of each build file must be a "project" tag. ========================================================================= --> <project name="(projectname)" basedir="(projectbasedir)" default="(targetname)" description="(projectdescription)"> <!-- ========================================================================= Inclusion of optional overall project properties. ========================================================================= --> <property file="(main property file)" /> <!-- ========================================================================= Build file wide properties used in the targets below ========================================================================= --> <!-- Useful to make the current buildtime available as a property --> <tstamp> <!-- Format is, e.g. Sat, 03 Oct 2009, 16:31 --> <format property="buildtime" pattern="%a, %d %b %Y, %H:%M"/> </tstamp> <property name="(first.property1)" value="(value1)" override="true" /> <property name="(second.property2)" value="(value2)" override="true" /> <!-- ========================================================================= Type and task calls here, i.e. filesets, patternsets, CopyTask calls etc. ========================================================================= --> <!-- Filesets --> <fileset dir="(fileset.directory)" id="(fileset.reference)"> <include name="(include.pattern)"/> </fileset> <!-- Custom tasks --> <taskdef classname="(task.classname)" name="task.name" /> <!-- ========================================================================= All target definitions ("if" and "unless" attributes are optional) ========================================================================= --> <target name="(targetname)" [depends="targetname1,targetname2"] [if="(ifproperty)"] [unless="(unlessproperty)"] > <!-- ---------------------------------------------------------------------- Type and task calls here, i.e. filesets, patternsets, CopyTask calls, etc. ---------------------------------------------------------------------- --> </target> <!-- ========================================================================= More targets here ========================================================================= --> <target name="..." > <!-- ---------------------------------------------------------------------- Type and task calls here, i.e. filesets, patternsets, CopyTask calls, etc. ---------------------------------------------------------------------- --> </target> </project>
By convention properties are named in dot notation in Phing
build files, e.g. ftp.upload
, temp.builddir
and so on