سؤال

هل من الممكن إضافة إدخالات إلى ملف البيان.

لبناء حزمة OSGI على سبيل المثال.

هل كانت مفيدة؟

المحلول

لاحظ أنه يمكنك إنشاء بيض في ذبابة عبر مهمة النمل وتعيين خصائص ديناميكيا.

أولا، يجب عليك تحديث ملف NetBeans الخاص بك "project.properties" الموجود في دليل "NBProject". أضف السطر التالي إلى الملف:

manifest.file=manifest.mf

بعد ذلك، قم بإنشاء مهمة نمل لإنشاء / تحديث البيان باستخدام ملف "Build.xml". في هذا المثال، سنقوم بتعيين رقم الإصدار وتاريخ ملف 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 الخاص بك وأشياء في ملف جرة الخاص بك. إذا كنت ترغب في حذف ملف البيان البحري من دليل مشروع NetBeans الخاص بك، فما عليك سوى إنشاء مهمة نمل أخرى (JAR بالطبع):

<target name="-post-jar">
  <delete file="MANIFEST.MF"/>
</target> 

نصائح أخرى

قد تكون معلومات مثيرة للاهتمام هنا:

http://wiki.netbeans.org/faqnomainclass.

لدي مشروع مكتبة فئة Java مع ملف بيان مخصص - مثالي لحزمة Osgi. للحصول على هذا العمل أولا تحرير المشروع.

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

قم بإنشاء ملف master.mf المخصص الخاص بك في دليل المشروع.

(في هذه المرحلة إذا حاولت نظافة / بناء، فلن تحصل على ملف البيان المخصص الخاص بك - سوف توفر Netbeans الخاصة بك. -Manifest "يتم استدعاؤه مباشرة بعد" -do-jar-with-works "، الكتابة فوق ملف جرة البيان المخصص الخاص بك مع جرة NetBeans الافتراضية.)

إضافة هدف مخصص إلى ملف 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

في نفس DIR كإصدار Build.xml يمكنك وضع ملف Missest.mf الخاص بك

أنا أستخدم Netbeans 6.7.1 اتضح أن Build-Imp.xml (يستخدم NetBeans Script Script الفعلي)

  • ليس لديه هدف يعمل إذا كان "مع البيان، بدون فئة رئيسية"
  • ولكن لديها واحدة مثل "مع البيان، مع الطبقة الرئيسية"

لذلك .. تأكد من أن لديك خصائص المشروع، تشغيل، الطبقة الرئيسية المليئة بكل شيء

أعتقد أن هذه بعض ميزة غير موثقة :(

هذا هو محتوى البيان الخاص بي:

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: ( ..... )

في حال كنت تستخدم Maven (NBM-Maven-Plugin)، انظر إلى هذا

NBM مافن البرنامج المساعد

لماذا لا تستخدم مشروع Maven، الذي عمل جيدا بالنسبة لي؟ على سبيل المثال اباتشي فيليكس

يرى هذا مثال البديل القابل للتوصيل التي قمت بإنشائها في netbeans.

يمكنك تعديل 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 في ملف جرة مثل هذا:

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

تم اختباره على NetBeans 8.1.

يرى هذه المقالة.

هنا هو وصف كيف

  • إنشاء أهداف النمل الخاصة
  • إضافة إدخالات يدوية إلى بيان jar الإخراج
  • تشغيل أهداف النمل المخصصة من NetBeans
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top