我怎样才能签订蚂蚁OSGi包,但不覆盖MANIFEST.MF内容是什么?
题
我有我创建用Ant OSGi包的JAR Eclipse插件。我想用Ant任务他们签名,但与类签名覆盖MANIFEST.MF内容,使得OSGi包不可用。在JDK jarsigner工具具有相同的行为。 Eclipse的PDE似乎有这个功能,但据我所知,你只能用它在Eclipse中。我希望能够从命令行运行我的Ant构建。有谁知道一个简单的方法来添加的,而不是覆盖它的类签名MANIFEST.MF?
解决方案
我不认为清单是默认覆盖。遵守以下控制台脚本:
$ 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=
其他提示
这似乎是一个JDK的问题。随着1.5.0_16
,在覆盖的jarsigner我现有的MANIFEST.MF,但1.6.0_13
一切工作正常。
不隶属于 StackOverflow