我有一个 Ant 文件,我正在其中创建一个 zip 文件和几个 JAR 文件的清单。zip 和清单都引用相同的库,但方式略有不同。如果可能的话,我想合并对文件的引用,而不是明确地写两次,并希望两个任务中的引用同步。下面是我目前正在做的一个例子。
<target name="zip" depends="default">
<zip destfile="${dist.dir}/${project.name}_v${project.version}.zip">
<zipfileset prefix="lib" dir="lib/Dom4J" includes="*.jar"/>
<zipfileset prefix="lib" dir="lib/GSON" includes="*.jar"/>
<zipfileset prefix="lib" dir="lib/Guava" includes="*.jar"/>
<!-- ... A bunch more (Note I don't want everything
in the lib directory, just certain subfolders
within the lib directory which are explicitly
listed here like GSON. -->
</zip>
</target>
<target name="createManifest">
<!-- Hard code the classpath by hand and hope
they sync up with the zip task -->
<property name="mfClasspath"
value="dom4j-1.6.1.jar gson-2.1.jar guava-11.0.2.jar" />
<!-- Code to use the mfClasspath when creating the manifest
omitted for brevity -->
</target>
理想情况下,我希望fileset
在这两个任务中都可以引用某种类型的东西。请注意,清单不包含任何文件夹/路径。清单仅包含在zip
任务中提到的目录中找到的 JAR 文件。