2012-05-04 4 views
3

私はHeroku slugが大きすぎるため、Mint 12、Play 2.0で動作し、Proguardを動作させようとしています。Play 2スカラールートコントローラのバイトコードが他のすべてのバイトコードと同じではありません

だから、私はxsbt proguard pluginを使用していて、ProGuardのは、バイトコード形式を好きではないので、それがbarfs、51それはProGuardの4.7だ、51で動作するようになっていますが、それはしていません:

[error] {file:/(some path)/*:proguard: java.io.IOException: Can't read 
[/(that path)/target/scala-2.9.1/(my app)_2.9.1-1.0-SNAPSHOT.jar] 
(Can't process class [controllers/routes$ref.class] 
(Unsupported version number [51.0] for class format)) 

だから、私は瓶に何を見て、ほぼすべての行は、このようなものです:

./controllers/Application.class: compiled Java class data, version 49.0 (Java 1.5) 

しかし、ルータは次のようになります。

./controllers/routes.class:  compiled Java class data, version 51.0 

ルーターは他のすべてのものとは異なるターゲットを選択できますか?自動他のクラスながら

target/scala-{version}/src_managed/controllers/routes.java 

を生成からのjavacでコンパイルされているので

OpenJDK Runtime Environment (IcedTea7 2.0) (7~b147-2.0-0ubuntu0.11.10.1) 
OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode 
+1

あなたはProGuardの4.7を使用してしていないようです。 Java 7(クラスファイルバージョン51.0)をサポートしています。また、サポートされていないJavaバージョンに対して異なるエラーメッセージが生成されます。 ProGuardは実行時にバージョン番号を表示するので、確認が容易です。 –

+0

ブリー、そうです。私は盲目的に[指示](https://github.com/siasia/xsbt-proguard-plugin)に従ったので、古いプラグインバージョンを持っていました。最新のものを指定すると問題が解決されます。 –

答えて

3

routes.classが異なるバイトコード形式になっています。それが重要な場合

私は、ミントが付属していますJDK7を使用していますファイルはスカラーコンパイラによって生成されます。ここで

+0

ありがとう、私はそれがそれであると思った。私はPlayコードを突き刺し、-targetオプションが設定されている場所を見つけることができませんでした。 –

0

は、プレイのスラグサイズHerokuの上の2つのアプリを低減するための回避策です:
https://groups.google.com/d/topic/play-framework/R_BbIomWsqI/discussion

+0

ええ、私はそうしています(https://github.com/enrich/heroku-buildpack-scala)、それは助けますが、私のスラグはまだ(わずかに)限界を超えています。私はHerokuのdynoサイズにも関心があるので、私はEC2のインスタンスに移動しています。 –

+1

多くの静的ファイルやコードがありますか? –

+0

さて、それはいくつかのことです。 "sbt stage"を実行すると約175MBが生成されます。 27MBの公共静的サブモジュールがあります。ターゲット/ステージングされたアプリケーションのjarファイルは21MBです。すべてのターゲット/ステージングは​​65MBで、ターゲット/スカラ - 2.9.1では51MB以上となるため、ターゲットは115MBです。モジュールに28MBのコードサブモジュールがあります。おそらく静的な公開サブモジュールを最も簡単に縮小することができますが、他に何を攻撃するのかは分かりません。 ...ああ、実際にもっと詳しく見て、私のサブモジュールreposが何らかの形で含まれている可能性はありますか?これらはサブモジュールサイズのかなり大きな部分です。 –

関連する問題