4

我有一个像这样的目录结构和 build.xml

    /path-to-project/src/prj1
    /path-to-project/src/prj2

    /path-to-project/tests
    /path-to-project/tests/build.xml

我必须以某种方式找到路径

    /path-to-project/

在我的 build.xml

我的 build.xml 是这样的

<project name="php-project-1" default="build" basedir=".">
  <property name="source" value="src"/>
    <target name="phploc" description="Generate phploc.csv">
      <exec executable="phploc">
        <arg value="--log-csv" />
        <arg value="${basedir}/build/logs/phploc.csv" />
        <arg path="${source}" />
      </exec>
    </target>
</project>

在这里,我想以某种方式获得${source}as的价值,/path-to-project/src/但我没有得到它${parent.dir}

是否可以在 build.xml 中获取此路径?

4

2 回答 2

9

您可以..像在命令行上一样使用导航到父目录。

<project name="php-project-1" default="build" basedir=".">
  <property name="root.dir" location=".."/>
  <property name="source" location="${root.dir}/src"/>
  ...
</project>

更新:更改valuelocation您应该接受的马丁答案。

于 2011-08-04T17:22:05.987 回答
7

您应该使用location属性而不是value设置source属性:

<property name="source" location="src"/>

Ant 然后将属性设置为给定位置的绝对路径。如果该位置看起来像一个相对路径,则绝对路径是相对于 basedir 计算的。该property任务具有其他属性,您可以使用它来进一步调整它。

要获取 basedir 的父目录,您可以类似地使用:

<property name="parent.dir" location=".." />

(至少在unix机器上,没有在windows上测试过。)

于 2011-08-04T17:23:56.627 回答