1

我想创建一个文件集以通过 SCP 进行部署。到目前为止,一切都很好,正在部署文件,但是:

我只想部署具有动态名称的文件夹的文件和子文件夹。

我的目录树是:

Source Files 
     |_ _target
           |_ <timestamp>-package
                  |_ css
                  |_ img
                  |_ js
                  |_ index.php
    |_ css
    |_ scss
    |_ img
    |_ config.rb
    [...]

我只想部署的文件和子文件夹

_target | <timestamp>-package

所以我将文件集声明为

<fileset id="fileset:deployment" dir="${basedir}/_target">
    <include name="**/**" />
</fileset>

如您所见,“_target”的子文件夹有一个动态名称,因为它包含一个时间戳(它是使用不同的 ant 目标创建的)。SCP 现在部署整个文件夹“timestamp-package”,但我只想在那里部署文件和子文件夹。有没有办法做到这一点?

4

1 回答 1

0

可能有几种方法可以做到这一点。我假设您<timestamp>-package在构建时只存在一个目录,否则您会有歧义。

这是一种方法。使用<dirset>任务来确定您的正确父目录<fileset>

<dirset id="src.dir" dir="_target">
    <include name="*-package" />
</dirset>

然后将其用作dir您的属性的一部分<fileset>

<fileset id="fileset:deployment" dir="_target/${ant.refid:src.dir}">
    <include name="**/**" />
</fileset>
于 2013-11-07T23:55:04.873 回答