蚂蚁 / proguard:使用zipgroupfileset包装之前,在 * 3rd partion jar中删除文件



我正在创建一些可运行的罐子(桌面Javafx应用程序)。

我有一个我包括的第三方罐子的文件集:

<fileset id="shared_lib" dir="${aux.debian.lib.dir}">
    <include name="commons-lang3-3.4.jar"/>
    <include name="commons-io-2.4.jar"/>
    ...
</fileset>

然后我使用ZipGroupfileset将其包含在最终可运行的JAR中:

<jar destfile="myapp.jar" filesetmanifest="mergewithoutmain">
    <zipgroupfileset refid="shared_lib"/>
    <manifest>
        <attribute name="Main-Class" value="mypackage.myapp"/>
        <attribute name="Class-Path" value="."/>
    </manifest>
    <fileset dir="./classes" />
</jar>

然后,当我运行proguard时,我会多次收到以下警告(因为每个Zipped Jars都包含许可证.txt和Note.txt):

[proguard] Warning: can't write resource [META-INF/LICENSE.txt] (Duplicate zip entry [myapp.jar:META-INF/LICENSE.txt])
[proguard] Warning: can't write resource [META-INF/NOTICE.txt] (Duplicate zip entry [myapp.jar:META-INF/NOTICE.txt])

我在定义文件集时尝试了各种排除选项,但是它们仅从文件集中排除文件,而不是从include jars中排除文件。

是否可以简单地过滤zipgroupfileset的一部分被滤除的东西?也许在舞会中?

这只是一个轻微的烦恼,因为一切都可以在警告中起作用,但是让我感到烦恼的是,我有一种感觉很简单的东西就是避开我。

您可以将duplicate="preserve"添加到<jar>元素,如文档中所述:

重复

  • 当找到重复文件时的行为。有效值是"添加","保存"one_answers"失败"。默认值是" add"。

相关内容

最新更新