如何使用Ant将目录转换为.jar文件
如何将目录列表转换为.jar文件列表? 似乎使用复制任务和映射器是正确的方法,但我没有发现任何嵌套元素从目录创建jar文件 当然,目录列表是计算出来的,而不是在ant脚本中硬编码 例如,一个foo目录包含bar1、bar2和bar3目录。该脚本将从bar1 dir创建bar1.jar,从bar2 dir创建bar2.jar,从bar3 dir创建bar3.jar 该脚本将从新添加的bar4目录创建一个bar4.jar,而不会对脚本进行任何更改(没有硬编码列表)如何使用Ant将目录转换为.jar文件,ant,jar,Ant,Jar,如何将目录列表转换为.jar文件列表? 似乎使用复制任务和映射器是正确的方法,但我没有发现任何嵌套元素从目录创建jar文件 当然,目录列表是计算出来的,而不是在ant脚本中硬编码 例如,一个foo目录包含bar1、bar2和bar3目录。该脚本将从bar1 dir创建bar1.jar,从bar2 dir创建bar2.jar,从bar3 dir创建bar3.jar 该脚本将从新添加的bar4目录创建一个bar4.jar,而不会对脚本进行任何更改(没有硬编码列表) 感谢您的帮助您可以使用适当的,以及
感谢您的帮助您可以使用适当的,以及ant contrib扩展任务 样本:
<foreach list="${hmProjectsList}" delimiter="/,"
target="cvsCheckOut" param="hmProjectDir" inheritall="true" />
您可以使用该任务来执行此操作。例如:
<project name="jars" default="jar" basedir=".">
<property name="dir.build" value="${basedir}/build"/>
<property name="dir.root" value="${basedir}/foo"/>
<target name="init">
<tstamp/>
<mkdir dir="${dir.build}"/>
</target>
<target name="jar" depends="init">
<!-- ${ant.file} is the name of the current build file -->
<subant genericantfile="${ant.file}" target="do-jar">
<!-- Pass the needed properties to the subant call. You could also use
the inheritall attribute on the subant element above to pass all
properties. -->
<propertyset>
<propertyref name="dir.build"/>
</propertyset>
<!-- subant will call the "do-jar" target for every directory in the
${dir.root} directory, making the subdirectory the basedir. -->
<dirset dir="${dir.root}" includes="*"/>
</subant>
</target>
<target name="do-jar">
<!-- Get the basename of the basedir (bar1, bar2, etc.) -->
<basename file="${basedir}" property="jarname"/>
<jar jarfile="${dir.build}/${jarname}.jar" basedir="${basedir}"/>
</target>
</project>
Jar在输入文件和单个输出文件中接受多个文件。我需要多个输出文件。如果你知道如何做到这一点,你能举个例子吗?AFAIK jar任务可以将basedir作为输入,并将其转换为目标文件-这似乎是你所需要的。实际上,我想要这样的东西:无论“mydir”中包含的目录是什么,它们都是JARD。n个目录生成n.jar文件。