J'utilise une tâche Ant de Jar Jar Links pour incorporer des classes d'un fichier jar tiers (objenesis) dans mon fichier JAR distribuable (exemple.jar). Jar Jar traduira les classes du package original (org.objenesis) à l'un de mes choix.Exclure des répertoires vides avec des liens Jar Jar
Cela fonctionne mais laisse des répertoires vides dans le fichier jar distribuable.
Voici un build.xml simplifié:
<target name="jar" depends="compile">
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"
classpath="lib/jarjar-1.1.jar"/>
<jarjar jarfile="dist/example.jar" excludes="org.objenesis.**">
<fileset dir="build/classes/main"/>
<zipfileset src="lib/objenesis-1.2.jar"/>
<rule pattern="org.objenesis.**" result="[email protected]"/>
</jarjar>
</target>
Un échantillon de contenu du example.jar comprend (comme prévu):
org/thirdparty/Objenesis.class
org/thirdparty/ObjenesisBase.class
mais aussi ces répertoires vides (undesirabl e):
org/objenesis/
org/objenesis/instantiator/
org/objenesis/instantiator/basic/
Ma question: comment exclure ces répertoires vides?
J'ai essayé l'option "zap" (listed in the doc), mais cela n'a pas fonctionné.
Cela a semblé fonctionner pour moi (j'ai dû convertir en syntaxe Gradle). –