Я попытался добавить manifest.file=${src.dir}/manifest.mf
в project.properties, но просматривая build-impl.xml, я вижу, что manifest.available
обычно сопровождается условием main.class
, поэтому я считаю, что мой манифест будет добавлен только в том случае, если пакет имеет основной класс, которого у меня, будучи библиотекой, нет. Независимо от того, что я пробовал, полученный jar библиотеки содержит только автоматически сгенерированный манифест только с Ant-Version и Created-By.
Можно ли добавить собственный манифест в библиотеку Java, скомпилированную в Netbeans 6.7.1?
Ответы (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>
Чтобы упростить редактирование 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 (сущ.)