Estoy usando una tarea Ant desde Jar Jar Links para incrustar clases de un archivo jar de terceros (objenesis) en mi archivo jar distribuible (ejemplo.jar). Jar Jar traducirá las clases del paquete original (org.objenesis) a una de mi elección.Excluir directorios vacíos con Jar Jar Links
Funciona pero deja directorios vacíos en el contenedor distribuible.
Aquí es un build.xml simplificado:
<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>
Una muestra de contenido de la example.jar incluye (como se esperaba):
org/thirdparty/Objenesis.class
org/thirdparty/ObjenesisBase.class
pero también estos directorios vacíos (indeseable e):
org/objenesis/
org/objenesis/instantiator/
org/objenesis/instantiator/basic/
Mi pregunta: cómo excluir estos directorios vacíos?
Probé la opción "zap" (listed in the doc), pero eso no funcionó.
Esto pareció funcionar para mí (tuve que convertir a sintaxis de Gradle). –