Manifest.MF 내용을 덮어 쓰지 않고 개미와 OSGI 번들에 서명하려면 어떻게해야합니까?
문제
개미가있는 OSGI 번들 항아리를 만든 Eclipse 플러그인이 있습니다. ANT 작업과 함께 서명하고 싶지만 Class 서명으로 Manifest.MF 내용을 덮어 씁니다. OSGI 번들을 사용할 수 없습니다. JDK Jarsigner 도구는 동일한 동작을 가지고 있습니다. Eclipse PDE에는 그 기능이있는 것처럼 보이지만, 내가 아는 한 Eclipse 내에서만 사용할 수 있습니다. 명령 줄에서 개미 빌드를 실행할 수 있기를 원합니다. 누구든지 수업 서명을 첨부하는 간단한 방법을 아는 사람이 있습니까?
해결책
나는 매니페스트가 기본적으로 덮어 쓰여 있다고 생각하지 않습니다. 다음 콘솔 스크립트를 관찰하십시오.
$ 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