android - SBT Android-Plugin 中 "proguardInJars"的语义是什么?

标签 android scala sbt proguard sbt-android-plugin

在SBT Android Plugin中,在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 分成单独的值,我是否仍需要将该 list 内容附加到 proguardInJars 以便 proguardTask 运行没有问题?

最佳答案

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 使用的通用类路径格式的更多详细信息。

关于android - SBT Android-Plugin 中 "proguardInJars"的语义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11325087/

相关文章:

带有 isDefinedA 的 Scala PartialFunction 并应用不工作

java - 如何通过 java 代码将 java 映射转换为不可变的 Scala 映射?

scala - Play 项目在 IntelliJ IDEA 中编译,但所有导入的 Java 类都是红色的(= 未解析)?

android - 在 Gradle (Android) 中添加 productFlavor 导致编译错误

java - 拍照时 Activity 被破坏

java - Android 操作快速查看 - 文件问题 - 尝试打开远程 pdf 文档

multithreading - 提高 scala .par 操作的并行级别

android - 如何从 Android 应用程序的 Google 电子表格中读取数据

scala - 没有从神器获取最新快照

scala - 发布到 Apache Archiva 被服务器拒绝并在 SBT 中显示“未经授权”?