23

netbeans によって生成された jar の manifest.mf ファイルにエントリを追加することはできますか?

たとえば、osgi バンドルを構築します。

4

8 に答える 8

22

Note that you can create a manifest on-the-fly via an ant task and set properties dynamically.

First, you must update your Netbeans "project.properties" file found in the "nbproject" directory. Add the following line to the file:

manifest.file=manifest.mf

Next, create an ant task to create/update the manifest using the "build.xml" file. In this example, we will set the version number and date of the jar file.

<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>

This will create a manifest file in your netbeans project directory and stuff it into your jar file. If you want to delete the autogenerated manifest file from your netbeans project directory, simply create another ant task (post jar of course):

<target name="-post-jar">
  <delete file="MANIFEST.MF"/>
</target> 
于 2011-12-04T12:53:52.037 に答える
6

興味深い情報がここにあるかもしれません:

http://wiki.netbeans.org/FaqNoMainClass

于 2009-10-22T14:49:17.220 に答える
2

OSGI バンドルに最適なカスタム マニフェスト ファイルを含む Java クラス ライブラリ プロジェクトがあります。これを機能させるには、まず project.properties を編集して設定します。

manifest.file=manifest.mf
manifest.available=true

プロジェクト ディレクトリに独自のカスタム manifest.mf ファイルを作成します。

(この時点で、クリーン/ビルドを試行しても、カスタム マニフェスト ファイルを取得できません。NetBeans が独自のマニフェスト ファイルを提供します。これは、build-impl.xml Ant ターゲット "-do-jar-with-libraries-without -manifest" は "-do-jar-with-manifest" の直後に呼び出され、カスタム マニフェスト JAR ファイルをデフォルトの NetBeans マニフェスト 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 でテスト済み

于 2010-09-26T06:38:27.887 に答える
1

build.xmlと同じディレクトリに、manifest.mfファイルを置くことができます

Netbeans 6.7.1を使用しています。build-imp.xml(Netbeansが使用する実際のビルドスクリプト)であることがわかりました。

  • 'マニフェストあり、メインクラスなし'の場合に実行されるターゲットがありません
  • しかし、それは「マニフェスト付き、メインクラス付き」のようなものを持っています

したがって、project-properties、run、main-Classが-anything-で埋められていることを確認してください

私はそれがいくつかの文書化されていない機能だと思います:(

これは私のマニフェストコンテンツです:

Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
Bundle-ManifestVersion: 2
Bundle-Name: jinstall
Bundle-SymbolicName: jinstall
Import-Package: ( .... )
Export-Package: ( .... )
Bundle-Activator: ( ..... )
于 2009-08-12T15:06:57.097 に答える
1

Maven (nbm-maven-plugin) を使用している場合は、これを見てください

NBM Maven プラグイン

于 2013-11-18T12:55:05.280 に答える
0

nbproject/build-impl.xml次のように、必要なプロパティを追加して編集できます。

....
<target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
    <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update">
        <attribute name="Main-Class" value="${main.class}"/>
        <attribute name="Property1" value="foo"/>
        <attribute name="Property2" value="bar"/>
    </manifest>
</target>
....

これにより、次のMANIFEST.MFような jar ファイルが生成されます。

Manifest-Version: 1.0
...
Property1: foo
Property2: bar

Netbeans 8.1 でテスト済み。

于 2018-10-09T20:39:35.797 に答える
-2

この記事を参照してください。

ここでは、その方法について説明します

  • 独自のアリ ターゲットを作成する
  • 出力 JAR の manifest.mf に手動エントリを追加します。
  • Netbeans からカスタム ant ターゲットを実行する
于 2009-09-29T10:08:56.587 に答える