Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 从名称部分匹配的文件集创建zip文件_Ant - Fatal编程技术网

Ant 从名称部分匹配的文件集创建zip文件

Ant 从名称部分匹配的文件集创建zip文件,ant,Ant,使用ANT,我试图为我的构建创建一个zip文件,以更新到发布的版本。为了获得已更改文件的列表,包括文件名中嵌入了版本字符串的.jar文件,我执行了以下操作: 将基本文件集复制到临时位置,并从文件名中删除版本字符串。即foo_1.0.0.jar->foo.jar 将更新的文件集复制到临时位置,并从文件名中删除版本字符串。即foo_1.0.1.jar->foo.jar 使用不同的选择器创建一个文件集,以比较已删除版本号的两个目录。 现在我想创建一个文件集,其中包含步骤3中更改的文件,但使用原始更新集

使用ANT,我试图为我的构建创建一个zip文件,以更新到发布的版本。为了获得已更改文件的列表,包括文件名中嵌入了版本字符串的.jar文件,我执行了以下操作:

将基本文件集复制到临时位置,并从文件名中删除版本字符串。即foo_1.0.0.jar->foo.jar 将更新的文件集复制到临时位置,并从文件名中删除版本字符串。即foo_1.0.1.jar->foo.jar 使用不同的选择器创建一个文件集,以比较已删除版本号的两个目录。 现在我想创建一个文件集,其中包含步骤3中更改的文件,但使用原始更新集的完整文件名。因此,我搜索的文件集将发现foo.jar已更改,并包含foo_1.0.1.jar


然而,我正在努力找出如何将差异文件集与包含版本号的真实文件集相匹配。在ANT中如何做到这一点?

我发现了如何做到这一点,正如Mark指出的有点复杂的问题。我的问题是没有使用正确的基础来创建文件集。为此,我做了以下工作

update.offering=更新代码的位置 ${temp.dir}/diffFiles=位置我复制了发现已从基本版本更改的文件,减去文件名中的版本字符串

<copy todir="${temp.dir}/outFiles" includeemptydirs="false">
        <fileset dir="${update.offering}" id="final.set">
            <present present="both" targetdir="${temp.dir}/diffFiles">
                <firstmatchmapper>
                    <regexpmapper from="(.*)(_[0-9]\..*)(\..*)" to="\1\3"/>
                    <mapper type="glob" from="*.*" to="*.*"/>
                    <mapper type="glob" from="*" to="*"/>
                </firstmatchmapper>
            </present>
        </fileset>
    </copy>

我需要做的是使用更新文件的位置作为新文件集的基础,然后使用正则表达式映射器匹配目标目录中的文件,该映射器允许我匹配不包括版本字符串的文件名。我还包括了两个glob映射器,以确保我得到的文件名称中没有不同的版本字符串。

我不清楚为什么要这样做。我的重点是能够使用标记从源代码中复制任何版本。我还将这种方法与二进制工件库Nexus结合起来,以保留我过去发布的实际二进制文件的副本。我猜您正在尝试管理已发布二进制文件中的增量更改。我的建议是不要。而是管理源代码中的更改,更好的工具!我们发布了两个版本的代码:纯拉链和使用实际的安装程序。这是为我们发送给客户的一组修复程序创建一个普通压缩包所必需的,并且它需要尽可能小:完全同意管理源代码中的更改,但现在我必须在现有流程中工作。