是否可以将自定义清单添加到Netbeans 6.7.1中编译的Java库中?

时间:2009-10-21 01:08:17

标签: java netbeans ant manifest.mf

我尝试将manifest.file=${src.dir}/manifest.mf添加到project.properties,但查看build-impl.xml,我发现manifest.available通常伴随着main.class条件,所以它让我相信我的清单只有在包有一个主类时才会被添加,我的是一个库,它不是。无论我尝试什么,生成的库jar只包含自动生成的清单,只包含Ant-Version和Created-By。

2 个答案:

答案 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)