如何通过file-tag删除package.xml中的路径?

时间:2011-04-20 22:58:17

标签: php pear

我试图简化我的package.xml文件,因为它包含许多

<phprelease>
    <filelist>
        <install as="path/to/my/Class.php" name="classes/path/to/my/Class.php" />
        <!-- Many more of this -->
    </filelist>
</phprelease>

根据Manual,应该可以通过使用baseinstalldir - 属性去除相对路径,但忽略它的一种(一种),或者导致好奇的路径名。例如

<dir name="/">
  <dir name="classes">
    <file baseinstalldir="/path/to/my" name="path/to/my/Class.php" role="php" />
  </dir>
</dir>

将文件安装到path/to/my/classes/path/to/my/Class.php,这显然是废话。

有没有人知道从路径中删除一个文件夹的解决方案,这不需要大量的install-as - 元素?

更新

看来,梨包装商在将其放入包装之前会重写package.xml。它执行的一个步骤是,它使contents - 部分变平。

<dir name="/">
  <dir name="classes">
    <file baseinstalldir="/path/to/my" name="path/to/my/Class.php" role="php" />
  </dir>
</dir>

变为

<dir name="/">
  <file baseinstalldir="/path/to/my" name="classses/path/to/my/Class.php" role="php" />
</dir>

安装程序将此解析为path/to/my/classes/path/to/my/Class.php当然......

1 个答案:

答案 0 :(得分:0)

PEAR不支持你想要的东西(即package.xml v2.0)。

Pyrus支持package.xml v2.1 ,其行为完全符合您的预期。