是否可以将条目添加到netbeans生成的jars的manifest.mf文件中?
例如,要构建一个osgi包。
发布于 2011-12-04 20:53:52
请注意,您可以通过ant任务动态创建清单并动态设置属性。
首先,您必须更新在"nbproject“目录中找到的Netbeans "project.properties”文件。将以下行添加到文件中:
manifest.file=manifest.mf
接下来,使用"build.xml“文件创建一个ant任务来创建/更新清单。在本例中,我们将设置jar文件的版本号和日期。
<target name="-pre-init">
<property name="project.name" value="My Library" />
<property name="version.num" value="1.4.1" />
<tstamp>
<format property="NOW" pattern="yyyy-MM-dd HH:mm:ss z" />
</tstamp>
<!--
<exec outputproperty="svna.version" executable="svnversion">
<arg value="-c" />
<redirector>
<outputfilterchain>
<tokenfilter>
<replaceregex pattern="^[0-9]*:?" replace="" flags="g"/>
<replaceregex pattern="M" replace="" flags="g"/>
</tokenfilter>
</outputfilterchain>
</redirector>
</exec>
-->
<manifest file="MANIFEST.MF">
<attribute name="Bundle-Name" value="${project.name}" />
<attribute name="Bundle-Version" value="${version.num}" />
<attribute name="Bundle-Date" value="${NOW}" />
<!--<attribute name="Bundle-Revision" value="${svna.version}" />-->
<attribute name="Implementation-Title" value="${project.name}" />
<attribute name="Implementation-Version" value="${version.num}" />
<attribute name="Implementation-URL" value="http://www.example.com" />
</manifest>
</target>
这将在netbeans项目目录中创建一个清单文件,并将其填充到您的jar文件中。如果您想从netbeans项目目录中删除自动生成的清单文件,只需创建另一个ant任务(当然是post jar ):
<target name="-post-jar">
<delete file="MANIFEST.MF"/>
</target>
发布于 2009-10-22 22:49:17
有趣的信息可能在这里:
发布于 2010-09-26 14:38:28
我有一个带有定制清单文件的Java类库项目--非常适合OSGI包。要使其正常工作,首先编辑project.properties并设置:
manifest.file=manifest.mf
manifest.available=true
在项目目录中创建您自己的自定义manifest.mf文件。
(在这一点上,如果你尝试一个干净的/构建,你仍然不会得到你的自定义清单文件- NetBeans会提供它自己的文件。这是因为build-impl.xml Ant目标“-do- JAR - with -libraries This manifest”在"-do-jar-with- manifest“之后立即被调用,用默认的NetBeans清单JAR覆盖您的自定义清单JAR文件。)
将自定义目标添加到build.xml文件,如下所示:
<target name="-do-jar-with-libraries-without-manifest">
<!-- Inserted to prevent target from running so we can have a custom
manifest file with a class library project type. -->
</target>
在NetBeans 6.7.1中测试
https://stackoverflow.com/questions/1237084
复制相似问题