J'ai un plugin Eclipse pour lequel je crée les fichiers JAR du bundle OSGi avec Ant. Je voudrais les signer avec la tâche Ant, mais cela écrase le contenu de MANIFEST.MF avec les signatures de classe, rendant les paquets OSGi inutilisables. L'outil Jarsigner JDK a le même comportement. L'Eclipse PDE semble avoir cette fonctionnalité, mais autant que je sache, vous ne pouvez l'utiliser qu'à partir d'Eclipse. Je veux être en mesure d'exécuter ma construction Ant à partir de la ligne de commande. Est-ce que quelqu'un sait d'une manière simple d'ajouter les signatures de classe à MANIFEST.MF au lieu de l'écraser?Comment puis-je signer un bundle OSGi avec Ant sans écraser le contenu de MANIFEST.MF?
3
A
Répondre
2
Je ne pense pas que le manifeste soit écrasé par défaut. Observez le script de console suivant:
$ 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=
2
Cela semble être un problème JDK. Avec 1.5.0_16
, le jarsigner écrase mon MANIFEST.MF existant, mais avec 1.6.0_13
tout fonctionne bien.
Je l'ai encore essayé et mon MANIFEST.MF est toujours écrasé. Je suis sur Windows XP cependant. – FelixM
Windows ne remplacera pas non plus le manifeste. – AlBlue
Je suis perplexe, maintenant ça marche. Peut-être que quelque chose s'est mal passé lors de la création des fichiers JAR. – FelixM