java - 如何在不覆盖 MANIFEST.MF 内容的情况下使用 Ant 签署 OSGi 包?

标签 java ant osgi jarsigner

我有一个 Eclipse 插件,我用 Ant 为它创建了 OSGi 包 JAR。我想用 Ant 任务对它们进行签名,但这会用类签名覆盖 MANIFEST.MF 内容,从而使 OSGi 包无法使用。 JDK jarsigner 工具具有相同的行为。 Eclipse PDE 似乎具有该功能,但据我所知,您只能在 Eclipse 中使用它。我希望能够从命令行运行我的 Ant 构建。有人知道将类签名附加到 MANIFEST.MF 而不是覆盖它的简单方法吗?

最佳答案

我认为默认情况下不会覆盖 list 。观察以下控制台脚本:

$ 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=

关于java - 如何在不覆盖 MANIFEST.MF 内容的情况下使用 Ant 签署 OSGi 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1877552/

相关文章:

java - 在 printin 处输入 int

java - 用另一个替换字符串的一部分

java - Felix 不喜欢 javax.script

flash - Flash编译器不允许覆盖

java - 如何自动生成新的单元测试ant报告

java - 从 OSGI bundle 调用 JDBC 和 UCP 连接

jpa - Eclipselink : How do you get the EntityManager in each bundle?

java - TextView 在 AsyncTask 中给出 NullPointerException

java - 在 javafx 场景生成器中选择选项卡时如何执行某些操作?

java - 无法让 Ant 运行我的 JUnit 测试