Für ein Java-Projekt möchte ich alle JAR-Dateien von Drittanbietern zusammenführen, von denen es abhängig ist, in das von Apache Ant erstellte Haupt-JAR, das ich bereits geschafft habe.Ant: Dateien aus der zusammengefügten JAR-Datei ausschließen
Das Problem ist, dass einige dieser JAR-Dateien Signatur-Dateien in ihren META-INF
-Verzeichnissen haben. Wenn ich versuche, meine JAR-Datei auszuführen, erhalte ich die Fehlermeldung "Invalid signature file digest for Manifest main attributes"
. Nachdem ich die Signaturdateien manuell gelöscht habe, ist der Fehler verschwunden.
Ich habe versucht, die Signaturdateien in meiner Ant-Datei mit einem excludes
-Attribut oder einem exclude
-Tag zu filtern, aber nichts scheint irgendeinen Effekt zu haben.
Dies ist die Ameise-Aufgabe:
<target name="jar" description="Creates the jar file">
<mkdir dir="${jar}"/>
<jar destfile="${jar}/${ant.project.name}.jar" level="9" filesetmanifest="mergewithoutmain">
<zipgroupfileset dir="${lib}" includes="*.jar"/>
<zipfileset dir="${class}"/>
<manifest>
<attribute name="Main-Class" value="${mainclass}"/>
</manifest>
</jar>
</target>
Wie ich Dateien aus dem resultierenden Glas in dieser Ameise Aufgabe filtern? Danke für Ihre Hilfe!
Siehe bug [zipgroupfileset eine verschachtelte Muster-Spezifikation unterstützen sollte] (https://bz.apache.org/bugzilla/show_bug.cgi?id=34403). –