Ich habe eine build.xml, wo ich etwas Fett runnable Gläser mit Zielen zusammen mit vergleichbar:Weiternutzung Liste der zipfileset Aussagen in ANT
<target name="create_myapp_jar">
<jar destfile="./production/myapp.jar" filesetmanifest="mergewithoutmain">
<manifest>
<attribute name="Main-Class" value="com.something.entrypoints.MyApp"/>
<attribute name="Class-Path" value="."/>
</manifest>
<fileset dir="./classes"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-cli-1.2.jar"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-codec-1.10-sources.jar"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-codec-1.10.jar"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-io-2.4.jar"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-lang-2.6.jar"/>
<zipfileset excludes="META-INF/*.SF" src="./lib/commons-pool2-2.2.jar"/>
lots and lots of more JARs here....
</target>
Der Code wurde von Eclipse-(Export runnable Jar) erzeugt und mit geringfügigem Änderungen von mir.
Die Liste der enthaltenen Jars ist eigentlich ziemlich lang. Ich habe mehrere dieser Fetdosen gebaut, und ich fragte mich, wie ich es vermeiden konnte, die <zipfileset>
Aussagen für jedes Ziel aufzulisten?
Wie kann ich sie alle zusammen schlagen und dann von jedem Fat-Jar Build-Ziel referenzieren? Alles in dem Sinn, meine build.xml nicht zu Hunderten und Aberhunderten von Zeilen anschwellen zu lassen. Auch der Schmerz, ein neues JAR zu jedem der Ziele hinzuzufügen, würde verschwinden, wenn ich irgendwo eine Definition hätte.
Das hat wunderbar funktioniert, und ich habe auch etwas für Makros ... Schade, dass ich nicht beide Antworten als "richtig" markieren kann. Denke darüber nach, welcher der Beste ist. –