SBT Android-Plugin中“proguardInJars”的语义是什么?

时间:2012-07-04 08:17:32

标签: android scala sbt proguard sbt-android-plugin

在SBT Android插件中,在proguardTask中,有一个值proguardInJars 在我的简单测试项目中,它包含C:\Users\Administrator\.sbt\boot\scala-2.9.1\lib\scala-library.jar

然后将它与我自己编译的类合并为另一个值inJars

但是,它通过附加内容来组合。这是来自jberkel / android-plugin的代码:

val manifestr = List("!META-INF/MANIFEST.MF", "R.class", "R$*.class", "TR.class", "TR$.class", "library.properties")
val sep = JFile.pathSeparator
val inJars = ("\"" + classDirectory.absolutePath + "\"") +: proguardInJars.map("\"" + _ + "\""+manifestr.mkString("(", ",!**/", ")"))

我想知道是否有人知道这些附加内容的语义 另外,如果我要将inJars分成不同的值,我是否仍需要将该清单内容附加到proguardInJars,以使proguardTask无问题地运行?

1 个答案:

答案 0 :(得分:1)

android插件正在为ProGuard准备injars命令行参数。 ProGuard使用通用的类路径来确定jar中要考虑哪些文件,哪些不是jar中的文件匹配器。

例如,.../scala-library.jar(!META-INF/MANIFEST.MF,!**/R.class,!**/R$*.class,!**/TR.class,!**/TR$.class,!**/library.properties)表示文件R/TR.class或以R$ / TR$开头的类文件不应(!)作为输入

见这里:

http://proguard.sourceforge.net/index.html#manual/usage.html

单击class_path以显示有关ProGuard使用的通用类路径格式的更多详细信息。