在Phing中使用自定义属性

Phing允许您设置可以在脚本其余部分中使用的某些参数。这些可用于定义非标准的构建目录,或存储可在构建期间写入连接文件的数据库连接详细信息。

属性是使用property元素定义的,应将其放置在build.xml文件的顶部,以使其他开发人员可以轻松查看正在发生的情况。以下示例定义了一个属性,并使用主目标将其打印出来。

<?xml version="1.0"?>

<!-- build xml -->

<project name="myProject" default="main">

 <property name="property1" value="value1" />

 

 <target name="main">

  <echo>property1: ${property1}</echo>

 </target>

</project>

运行此build.xml文件将产生以下结果。

C:\myProject>phing

Buildfile: C:\myProject\build.xml

 

myProject > main:

    [echo] property1: value1

 

BUILD FINISHED

 

Total time: 0.2119 seconds

可以使用命令行定义属性。以下build.xml文件与第一个文件类似,但是它尝试打印出第二个未定义的属性。现在,主要目标具有名为if的属性,该属性用于查看是否定义了属性。如果未定义property2属性,则目标将不会运行,但也不会产生任何错误。

<?xml version="1.0"?>

<!-- build xml -->

<project name="myProject" default="main">

 <property name="property1" value="value1" />

 

 <target name="main" if="property2">

  <echo>property1: ${property1}</echo>

  <echo>property2: ${property2}</echo>

 </target>

</project>

要在存在property2的情况下运行此脚本,请使用-D标志和phing。

phing -Dpropertyq2 value2

也可以写成:

phing -Dpropertyq2=value2

if属性的反义是“除非”属性。如果定义了exclude属性中的属性,则不会运行目标元素。这提供了打开和关闭目标的便捷方式。

<?xml version="1.0"?>

<!-- build xml -->

<project name="myProject" default="main">

 <property name="property1" value="value1" />

 

 <target name="main" unless="property2">

  <echo>property1: ${property1}</echo>

 </target>

</project>

可以使用以下命令关闭主要目标。

phing -Dproperty2 value2

在命令行上设置属性后,它将覆盖build.xml文件中为该属性设置的任何值。

您还可以build.xml使用第二个属性元素的override属性从同一文件中覆盖属性。

<?xml version="1.0"?>

<!-- build xml -->

<project name="myProject" default="main">

 <property name="property1" value="value1" />

 

 <target name="main">

  <property name="property1" value="wibble" override="yes" />

  <echo>property1: ${property1}</echo>

 </target>

</project>

现在property1属性的值将为“摆动”。

使用Phing进行自动构建

以上是 在Phing中使用自定义属性 的全部内容, 来源链接: utcz.com/z/331900.html

回到顶部