【问题标题】:phing get files in a directory and create a list of them for a xml file?phing 获取目录中的文件并为 xml 文件创建它们的列表?
【发布时间】:2012-02-11 02:47:10
【问题描述】:

我正在尝试创建一个通用的 phing 脚本来构建一个 joomla 插件。

每个 joomla 插件都必须有一个 .xml 文件,joomla 系统使用该文件来安装插件。在这个 xml 文件中,我们需要像这样定义 zip 存档的文件和文件夹:

<files>
   <folder>folder1</folder>
   <filename plugin="nameofplugin">nameofplugin.php</filename>
   <filename>index.html</filename>
</files>

现在,因为我很懒,而且我不想总是自己做这件事,所以我想让 phing 脚本为我做这件事。

我已将所有插件文件移动到这样的特定文件夹:

-插件文件夹

--文件夹1

--nameofplugin.php

--index.php

我发现我可以像这样使用 foreach:

<foreach param="dirname" absparam="absname" target="subtask">
        <fileset dir="${destination.dir}">
            <type type="file" />
            <depth max="0" min="0" />
        </fileset>
    </foreach>

<target name="subtask">
    <echo msg="<file>: ${dirname}" />
</target>

现在在子任务中,我无法弄清楚如何将所有文件合并到一个变量中,以便我可以使用 replacetokens 例如?

对此有什么想法吗?我应该建立自己的 phing 类吗?或者是否有一种简单的方法可以通过 phing 提供的开箱即用功能来实现这一目标?

【问题讨论】:

    标签: phing


    【解决方案1】:

    好的,我设法实现了我想要的。我创建了一个新的 phing 任务并在其中进行了替换。

    你可以在这个 joomla 插件的基础上看到它是如何工作的: https://github.com/compojoom/CUpdater

    build.xml 文件在这里:

    https://github.com/compojoom/CUpdater/blob/master/builds/plugin.xml

    任务就在这里:

    https://github.com/compojoom/CUpdater/blob/master/builds/phingext/listjpackagefilestask.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-02
      • 2022-10-25
      • 1970-01-01
      • 1970-01-01
      • 2022-04-03
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多