gpt4 book ai didi

java - 使用 ant 任务时 Proguard 中的 injar 参数出现问题

转载 作者:行者123 更新时间:2023-11-30 03:50:05 24 4
gpt4 key购买 nike

我正在使用 ant(版本 5.0 beta 2)的 proguard,当我尝试使用过滤器(!META-INF/MANIFEST-MF)添加输入 jar(又名 injar)时,参数将转换为:

-injars '/path-to-my-file/myjar.jar(!META-INF/MANIFEST-MF)'

而不是

-injars /path-to-my-file/myjar.jar(!META-INF/MANIFEST-MF)

因此过滤器 (!META-INF/MANIFEST-MF) 被忽略,并在尝试读取文件“/path-to-my-file/myjar.jar(! META-INF/MANIFEST-MF)"

我的 build.xml 类似于:

    <pathconvert property="other_injars" refid="injars">
<mapper>
<globmapper from="*.jar" to="*.jar(!META-INF/MANIFEST.MF)" casesensitive="no"/>
</mapper>
</pathconvert>

<!-- obfuscate and optimize by ProGuard -->
<taskdef resource="proguard/ant/task.properties" classpath="${proguard.home}/lib/proguard.jar" />
<proguard configuration="${proguard.config.file}" >
<injar refid="main_injar"/>
<injar path="${other_injars}"/>
<outjar path="${workdir}/${output.jar.file}"/>
<libraryjar refid="third_parties" />
</proguard>

我的问题是,当我使用过滤器时,如何避免生成的 injar 参数值中的 ' 字符?

我认为 proguard ant 任务由于以下字符而转义文件路径:(!,但它不应该,因为实际上,它们不是一部分文件路径。

最佳答案

在 ProGuard 风格的配置中,过滤器在文件名后面的括号之间指定:

-injars application.jar(!META-INF/MANIFEST.MF)

在 Ant 配置中,文件名和过滤器是用单独的属性指定的:

<injar path="application.jar" filter="!META-INF/MANIFEST.MF" />

因此在这种情况下,您不应将带有括号的过滤器附加到文件名中。

关于java - 使用 ant 任务时 Proguard 中的 injar 参数出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24677118/

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