2014-04-19 17 views
20

Sono su Mac OS X 10.9.2 esbt 0.13.3-SNAPSHOT (costruito dalle fonti) , Java 8 e sbt-proguard 0.2.2 plug-in.ProGuard dice il numero di versione di classe non supportata [52.0] (massimo 51.0, Java 1.7) con SBT-Proguard

sbt 0.13.3-SNAPSHOT

[jacek]> sbtVersion 
[info] 0.13.3-SNAPSHOT 

Java 8

$ /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/bin/java -version 
java version "1.8.0" 
Java(TM) SE Runtime Environment (build 1.8.0-b132) 
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode) 

progetto/plugins.sbt

addSbtPlugin("com.typesafe.sbt" % "sbt-proguard" % "0.2.2") 

Quando ho eseguito proguard:proguard in SBT guscio è fatto saltare in aria con la seguente eccezione:

[sbt-updates]> show proguard:proguard 
[info] ProGuard, version 4.9 
[info] Reading program directory [/Users/jacek/oss/sbt-updates/target/scala-2.10/sbt-0.13/classes] (filtered) 
[info] Reading program jar [/Users/jacek/.ivy2/cache/org.scalaz/scalaz-concurrent_2.10/bundles/scalaz-concurrent_2.10-7.1.0-M6.jar] (filtered) 
[info] Reading program jar [/Users/jacek/.sbt/boot/scala-2.10.3/lib/scala-library.jar] (filtered) 
[info] Reading program jar [/Users/jacek/.ivy2/cache/org.scalaz/scalaz-core_2.10/bundles/scalaz-core_2.10-7.1.0-M6.jar] (filtered) 
[info] Reading program jar [/Users/jacek/.ivy2/cache/org.scalaz/scalaz-effect_2.10/bundles/scalaz-effect_2.10-7.1.0-M6.jar] (filtered) 
[info] Reading library jar [/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar] 
[error] Error: Can't read [/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar] (Can't process class [apple/applescript/AppleScriptEngine.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7))) 
[trace] Stack trace suppressed: run last proguard:proguard for the full output. 
[error] (proguard:proguard) Proguard failed with exit code [1] 
[error] Total time: 16 s, completed Apr 19, 2014 2:27:56 PM 

Perché potrebbe essere la ragione per l'errore?

risposta

8

Sembra che ProGuard e quindi sbt-proguard non supportano ancora Java 8 e la modifica della versione di Java utilizzata nello script per avviare sbt ha aiutato.

[sbt-updates]> show proguard:proguard 
[info] Compiling 8 Scala sources to /Users/jacek/oss/sbt-updates/target/scala-2.10/sbt-0.13/classes... 
[warn] there were 6 feature warning(s); re-run with -feature for details 
[warn] one warning found 
[info] ProGuard, version 4.9 
[info] Reading program directory [/Users/jacek/oss/sbt-updates/target/scala-2.10/sbt-0.13/classes] (filtered) 
[info] Reading program jar [/Users/jacek/.ivy2/cache/org.scalaz/scalaz-concurrent_2.10/bundles/scalaz-concurrent_2.10-7.1.0-M6.jar] (filtered) 
... 

Questo è con la seguente versione di Java 7:

$ /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/java -version 
java version "1.7.0_51" 
Java(TM) SE Runtime Environment (build 1.7.0_51-b13) 
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode) 
+0

Proguard fa supporto Java 8, ma non ho usato SBT-Proguard, alla fine ho offuscato il barattolo dopo l'artefatto è stato costruito come una fase della mia processo di compilazione. Puoi vedere la mia risposta completa qui: https://stackoverflow.com/questions/24670430/sbt-proguard-with-play-2-2-3/40247770#40247770 – Tom

3

E 'possibile aggiornare la versione di Proguard che SBT-Proguard utilizza modificando la chiave proguardVersion in build.sbt ad una impostazione più recente di 5.0, ad es

ProguardKeys.proguardVersion in Proguard := "5.2.1" 

See: https://github.com/sbt/sbt-proguard/issues/5

Problemi correlati