gpt4 book ai didi

ant - 当 ant 的 jar 任务包含在 jar 中时,如何重命名文件?

转载 作者:行者123 更新时间:2023-12-03 23:29:08 25 4
gpt4 key购买 nike

我想将一组看起来像这样的文件放入 jar 中:

yay/my.jar
boo/my.jar
foo/my.jar
bar/my.jar

在此过程中,我希望将它们全部重命名如下:
yay_my.jar
boo_my.jar
foo_my.jar
bar_my.jar

我希望使用映射器来完成此操作,但我正在使用的文件集元素和 jar 任务似乎在任何地方都不支持它。

在构建 jar 时如何应用映射器,否则如何执行这样的转换?我想避免将所有文件复制到我想要的目录结构并在各处进行复制,这就是我们的构建系统现在的工作方式。

最佳答案

您可以使用 zipfilesetfullpath用于重命名 jar 中的文件名的属性:

<jar destfile="newjar.jar">
<zipfileset dir="yay" includes="my.jar" fullpath="yay_my.jar"/>
<zipfileset dir="boo" includes="my.jar" fullpath="boo_my.jar"/>
<!-- etc. -->
</jar>

但是,您不能通过这种技术使用映射器,您必须明确列出每个 jar 文件。如果你可以假设每个文件都被命名为 my.jar ,并且它们都在直接子目录中,您可以使用 subant目标是将它们全部连接起来:
<target name="glom">
<subant genericantfile="${ant.file}" target="update-jar">
<dirset dir="." includes="*"/>
</subant>
</target>

<target name="update-jar">
<basename file="${basedir}" property="dirname"/>
<property name="path" value="${dirname}_my.jar"/>
<jar destfile="../newjar.jar" update="yes">
<zipfileset dir="." includes="my.jar" fullpath="${path}"/>
</jar>
</target>

关于ant - 当 ant 的 jar 任务包含在 jar 中时,如何重命名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com