OSGi バンドル JAR を Ant で作成するための Eclipse プラグインがあります。Ant タスクで署名したいのですが、MANIFEST.MF の内容がクラス署名で上書きされ、OSGi バンドルが使用できなくなります。JDK jarsigner ツールの動作は同じです。Eclipse PDE にはその機能があるようですが、私の知る限り、Eclipse 内からしか使用できません。コマンド ラインから Ant ビルドを実行できるようにしたいと考えています。上書きする代わりに、MANIFEST.MF にクラス署名を追加する簡単な方法を知っている人はいますか?
質問する
970 次
2 に答える
2
これはJDKの問題のようです。を使用1.5.0_16
すると、jarsignerは既存のMANIFEST.MFを上書きしますが、1.6.0_13
すべてが正常に機能します。
于 2009-12-15T17:33:50.633 に答える
2
マニフェストがデフォルトで上書きされるとは思わない。次のコンソール スクリプトを確認します。
$ touch MyMainClass.class
$ echo 'Main-Class: MyMainClass' > MyManifest
$ jar cvmf MyManifest myjar.jar MyMainClass.class
added manifest
adding: MyMainClass.class(in = 0) (out= 0)(stored 0%)
$ unzip -c myjar.jar META-INF/MANIFEST.MF
Archive: myjar.jar
inflating: META-INF/MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.6.0_17 (Apple Inc.)
Main-Class: MyMainClass
$ jarsigner myjar.jar mykeyid
Enter Passphrase for keystore:
$ unzip -c myjar.jar META-INF/MANIFEST.MF
Archive: myjar.jar
inflating: META-INF/MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.6.0_17 (Apple Inc.)
Main-Class: MyMainClass
Name: MyMainClass.class
SHA1-Digest: 2jmj7l5rSw0yVb/vlWAYkK/YBwk=
于 2009-12-10T08:43:15.770 に答える