2011-09-18 6 views
5

私は1つの実行可能ファイル* .jarをproguard plugin(sbt 10)で作成しようとしています。sbt-proguardにjava * .jarsを含める方法を教えてください。

出力ジャーを実行しようとしているときに、sbt-proguardにjava jarsが含まれていないことを除けば(私の場合はmysql-connector-java-5.1.10.jar

java -jar proguard-output.min.jar

私は

Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

を取得しています(run`が細かいので、mysqlのコネクタを行く `SBTプロジェクトで間違いありながら)。

私はbuild.sbtで明示的にjarファイルを追加することによって、その問題を活用しようとしました:

... 
Preparing output jar 
... 
Copying resources from program jar [/home/kostya/.m2/repository/mysql/mysql-connector-java/5.1.10/mysql-connector-java-5.1.10.jar] (filtered) 
... 

しかし、私はまだ同じを取得しています:ProGuardのログでさらに

proguardInJars += Path.userHome/".m2"/"repository"/"mysql"/"mysql-connector-java"/"5.1.10"/"mysql-connector-java-5.1.10.jar" 

例外。私は間違って何をしていますか?

答えて

3

クラスは入力に指定されていますが、コードはProGuardが認識できないイントロスペクションによってのみインスタンス化します。したがって、出力に保存する必要があることを明示的に指定する必要があります。

Cfr。 ProGuardマニュアル>例>Processing database drivers

Cfr。 ProGuardのマニュアル>トラブルシューティング>ClassNotFoundException より安全な解決策は、おそらくJDBCドライバのようなサードパーティのjarファイルを処理するのではなく、代わりにライブラリjarファイルとして指定することです。

関連する問題