Можно ли добавить собственный манифест в библиотеку Java, скомпилированную в Netbeans 6.7.1?

Я попытался добавить manifest.file=${src.dir}/manifest.mf в project.properties, но просматривая build-impl.xml, я вижу, что manifest.available обычно сопровождается условием main.class, поэтому я считаю, что мой манифест будет добавлен только в том случае, если пакет имеет основной класс, которого у меня, будучи библиотекой, нет. Независимо от того, что я пробовал, полученный jar библиотеки содержит только автоматически сгенерированный манифест только с Ant-Version и Created-By.


person Remus Rusanu    schedule 21.10.2009    source источник
comment
Есть ли у вас доступ к команде генерации jar / или вы можете изменить / настроить / переопределить ее. Тогда вы можете просто использовать свой собственный манифест для jar'ing.   -  person Peter Kofler    schedule 21.10.2009


Ответы (2)


В итоге я добавил задачу Jar в файл build.xml, которая действительно хорошо, поскольку это позволило мне добавить задачу Sign также после обновления манифеста:

<target name="-post-jar">
    <jar destfile="${dist.jar}"
        update="true">
       <manifest>
         <attribute name="Built-By" value="..."/>
         <attribute name="Specification-Title" value="..."/>
         <attribute name="Specification-Vendor" value="..."/>
         <attribute name="Specification-Version" value="..."/>
         <attribute name="Implementation-Vendor" value="..."/>
         <attribute name="Implementation-Title" value="..."/>
         <attribute name="Implementation-Version" value="..."/>
       </manifest>
    </jar>
    <signjar jar="${dist.jar}"
        alias="..."
        keystore="..."
        storepass="..."/>
</target>
person Remus Rusanu    schedule 23.10.2009

Чтобы упростить редактирование MANIFEST.MF, модификация вышеизложенного заключается в переопределении задачи «-post-jar» в build.xml, например:

<target name="-post-jar">
        <jar destfile="${dist.jar}"
        update="true" manifest="src/META-INF/MANIFEST.MF">
        </jar>
</target>

и создать пакет «META-INF» (может также использоваться для других настроек, таких как файл «mime.types»), а в нем пустой файл с именем «MANIFEST.MF», который затем можно редактировать в редакторе NetBeans для пример, содержащий:

Manifest-Version: 1.0
Foo: Bar
See: Jar_File_Spec

Этот способ протестирован с:
Версия продукта: IDE NetBeans 6.9.1 (сборка 201011082200)
Java: 1.6.0_21; Java HotSpot(TM) 64-разрядный сервер VM 17.0-b16
Система: Linux версии 2.6.32-29-универсальная, работающая на amd64; УТФ-8; de_DE (сущ.)

person Michael Besteck    schedule 08.03.2011