gpt4 book ai didi

ant - 使用 Jar Jar 链接排除空目录

转载 作者:行者123 更新时间:2023-12-04 07:57:48 25 4
gpt4 key购买 nike

我正在使用来自 Jar Jar Links 的 Ant 任务将来自第 3 方 jar 文件 (objenesis) 的类嵌入到我的可分发 jar 文件 (example.jar) 中。 Jar Jar 会将原始包 (org.objenesis) 中的类转换为我选择的类。

它可以工作,但它会在可分发 jar 中留下空目录。

这是一个简化的 build.xml:



<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="org.thirdparty.@1"/>
</jarjar>
</target>

example.jar 的内容示例包括(如预期的那样):
org/thirdparty/Objenesis.class
org/thirdparty/ObjenesisBase.class

还有这些空目录(不需要):
org/objenesis/
org/objenesis/instantiator/
org/objenesis/instantiator/basic/

我的问题:如何排除这些空目录?

我尝试了“zap”选项( listed in the doc ),但这没有用。

最佳答案

这似乎是 Jar Jar 中的一个已知问题,列在他们的问题跟踪器中:http://code.google.com/p/jarjar/issues/detail?q=empty&id=32

鉴于这是大约三年前提出的并且似乎没有任何吸引力,我想您的选择是提供修复程序或解决它。

利用 Ant 支持在复制时删除空目录,可以解决此问题的示例 Ant 目标是:

<target name="unpolluted-jarjar" description="JarJars without empty directories">
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="${location.lib}/build/jarjar-1.2.jar"/>
<jarjar basedir="${location.classes}" destfile="${location.dist.binaries}/my-app.jar">
<zipfileset src="${location.lib}/shipped/dependency.jar"/>
<rule pattern="com.example.dependency.**" result="com.example.my-app.jarjar.com.example.dependency.@1"/>
</jarjar>
<mkdir dir="${location.dist.binaries}/exploded"/>
<unzip src="${location.dist.binaries}/my-app.jar" dest="${location.dist.binaries}/exploded/my-app.jar"/>
<copy includeemptydirs="false" todir="${location.dist.binaries}/unpolluted/my-app.jar">
<fileset dir="${location.dist.binaries}/exploded/my-app.jar"/>
</copy>
<jar destfile="${location.dist.binaries}/my-app-unpolluted.jar">
<fileset dir="${location.dist.binaries}/unpolluted/my-app.jar"/>
</jar>
</target>


它有点蹩脚,但它实现了你想要的。

关于ant - 使用 Jar Jar 链接排除空目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8465504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com