我尝试将manifest.file=${src.dir}/manifest.mf
添加到project.properties,但查看build-impl.xml,我发现manifest.available
通常伴随着main.class
条件,所以它让我相信我的清单只有在包有一个主类时才会被添加,我的是一个库,它不是。无论我尝试什么,生成的库jar只包含自动生成的清单,只包含Ant-Version和Created-By。
答案 0 :(得分:2)
我最终在build.xml中添加了Jar任务,这非常好,因为它允许我在清单更新后添加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>
答案 1 :(得分:2)
为了便于编辑MANIFEST.MF,上面的修改是覆盖build.xml中的“-post-jar”任务,如:
<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
这种方式测试:
产品版本:NetBeans IDE 6.9.1(Build 201011082200)
Java:1.6.0_21; Java HotSpot(TM)64位服务器VM 17.0-b16
系统:Linux版本2.6.32-29-在amd64上运行的通用; UTF-8; de_DE(nb)