gpt4 book ai didi

java - 获取目录中的 jar 列表并将其发送到另一个 ANT 目标

转载 作者:行者123 更新时间:2023-12-01 13:49:22 25 4
gpt4 key购买 nike

我有一个包含 jar 的目录。我没有他们的名字,我有一个目标,它获取 jar 的名称及其位置并对其进行操作。

<target name="addAttributes">
<mkdir dir="${folderName}/Temp"/>
<unzip src="${jarNamewtPath}" dest="${folderName}/Temp"/>
<delete file="${jarNamewtPath}"/>
<jar destfile="${jarNamewtPath}">
<manifest>
<attribute name="Application-Name" value="someValue"/>
<attribute name="Trusted-Only" value="true"/>
<attribute name="Codebase" value="*"/>
<attribute name="Permissions" value="all-permissions"/>
</manifest>
<fileset dir="${folderName}/Temp" />
</jar>
<delete dir="${folderName}/Temp"/>
</target>

如何获取文件的名称并将它们单独传递到此目标。

<target name="getJars">
<fileset id="getJars" dir="${someDir}/Jars">
<include name="*.jar" />
</fileset>
..... get list of jars
<antcall target="addAttributes">
<param name="folderName" value="${path}"/>
<param name="jarNamewtPath" value="${path}/name.jar"/>
</antcall>
</target>

任何帮助/线索将不胜感激。

最佳答案

最好是 <target>每个构建只能调用一次。对于可以在构建中重复使用的共享功能,请考虑 <macrodef> 相反。

这里是使用第三方Ant-Contrib的 <for> task的示例反复调用addAttributes <macrodef> :

<project name="ant-for-macrodef" default="getJars">
<taskdef resource="net/sf/antcontrib/antlib.xml" />

<macrodef name="addAttributes">
<attribute name="jar-path"/>
<sequential>
<echo>jar-path: @{jar-path}</echo>

<!-- Make temp.dir locally scoped to this macrodef. -->
<local name="temp.dir"/>
<property name="temp.dir" value="myTempDir"/>

<echo>Perform Jar operations here.</echo>
</sequential>
</macrodef>

<target name="getJars">
<fileset id="getJars" dir="${someDir}/Jars">
<include name="*.jar" />
</fileset>

<for param="jar.file">
<fileset refid="getJars"/>
<sequential>
<addAttributes jar-path="@{jar.file}"/>
</sequential>
</for>
</target>
</project>

关于java - 获取目录中的 jar 列表并将其发送到另一个 ANT 目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20083165/

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