2012-07-04 2 views
1

SBT Android 플러그인에서 proguardTask의 값은 proguardInJars입니다.
간단한 테스트 프로젝트에는 C:\Users\Administrator\.sbt\boot\scala-2.9.1\lib\scala-library.jar이 포함되어 있습니다.SBT Android-Plugin에서 "proguardInJars"의 의미는 무엇입니까?

그런 다음 내 컴파일 된 클래스와 결합하여 다른 값 inJars을 생성합니다.

그러나 무엇인가 추가하여 결합됩니다.

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("(", ",!**/", ")")) 

내가 궁금 누군가가이 추가 것들의 의미를 알고있다 : 여기에 그 작업을 수행 jberkel/안드로이드 - 플러그인의 코드입니다.
또한 inJars을 별도의 값으로 나누면 proguardTask을 문제없이 실행하려면에 해당 매니페스트 정보를 추가해야합니까?

답변

1

android 플러그인은 그 시점에서 ProGuard에 대해 injars 명령 줄 인수를 준비 중입니다. ProGuard는 일반화 된 클래스 경로를 사용하여 항아리에서 어떤 파일을 고려해야하는지, 그리고 항아리 내의 파일 정합자의 형식을 결정합니다.

예를 들어, .../scala-library.jar(!META-INF/MANIFEST.MF,!**/R.class,!**/R$*.class,!**/TR.class,!**/TR$.class,!**/library.properties)R/TR.class 파일 또는 클래스 파일이 (!)는 입력으로서 고려되어서는 안 R$/TR$로 시작하는 것을 의미한다.

는 여기를 참조하십시오 : class_path

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

클릭 ProGuard에서 사용하는 일반화 된 클래스 경로 형식에 대한 자세한 내용을 표시합니다.