java - नेटबीन 7:मेरे संपादित प्रतीत में शामिल क्यों नहीं किया जा रहा है?




netbeans ant manifest netbeans-7 (7)

मेरे पास build.xml में निम्न लक्ष्य है:

<target name="-pre-compile">
    <property file="build.properties"/>
    <buildnumber file="build.version"/>
    <tstamp>
        <format property="timestamp" pattern="yyyy-MM-dd HH:mm:ss"/>
    </tstamp>
    <manifest file="manifest.mf">
        <attribute name="MAJOR" value="${version.major}"/>
        <attribute name="MINOR" value="${version.minor}"/>
        <attribute name="RELEASE" value="${release}"/>
        <attribute name="BUILD" value="${build.number}"/>
        <attribute name="BUILD-DATE" value="${timestamp}"/>
        <attribute name="PROTOCOL" value="${protocol}"/>
        <attribute name="APPCODE" value="${appcode}"/>
    </manifest>    
</target>

यह ठीक काम करता है, एक साफ और नेटबीन्स के भीतर निर्मित मेगनेट। एमएफ खोलने से मैंने जो भी अतिरिक्त अतिरिक्त गुण जोड़ लिए हैं I हालांकि, जब मैं अपनी जार फ़ाइल खोलता हूं, तो मुझे लगता है कि इसमें सिर्फ डिफ़ॉल्ट सामग्री शामिल है:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.7.0-b147 (Oracle Corporation)

जब मैंने एक परियोजना में दो संकुल किए थे, तो इससे पहले मुझे यह काम ठीक करना था एक पैकेज सभी पुस्तकालय सामान था जिसे मैं अन्य परियोजनाओं में ले जा रहा हूं, इसलिए मैंने इसे एक और परियोजना में विभाजित करने का निर्णय लिया ताकि मैं स्वयं पुस्तकालय जार का निर्माण कर सकूं। अब मुझे यह समस्या है यह तब होता है जब मैं पुस्तकालय को स्वयं के साथ संकलित करता हूं और साथ ही मेरे अन्य प्रोजेक्ट पर निर्भर करता है।


Answers

Build.xml में .war के लिए नेटबीन्स 7.3.X में उपयोग करें

<manifest file="${build.web.dir}/META-INF/MANIFEST.MF">...</manifest>

मैनिफेस्ट में मसाला, युद्ध, कान का एक आम मुद्दा बनाने में एमएम है

"मैनिफेस्ट-वर्जनः 1.0 एंटी-वर्जनः अपाचे एट 1. 9.4 बनाया-बाय: 1.7.0_40-बी 43 (ओरेकल कॉर्पोरेशन)"

यदि आप एंटी-संस्करण संख्या को अनदेखा करना चाहते हैं और filesetmanifest = "mergewithoutmain" विकल्प का उपयोग करके बनाया गया है।

<jar destfile="MyJar.jar" basedir="./bin" filesetmanifest="mergewithoutmain"  manifest="./src/META-INF/MANIFEST.MF" update="true" >

मैंने इसे nbproject/project.properties खोलकर और अंत में manifest.file=manifest.mf जोड़कर इसे तय किया है I इतना ही आसान।


इस उत्तर को यहां देखें: क्या नेटबीन्स 6.7.1 में संकलित जावा लाइब्रेरी में कस्टम मैनिफेस्ट को जोड़ना संभव है?

मुझे यह समस्या थी, मेरे बिल्ड के अंत में इसे जोड़ने। XML समस्या का हल:

<target name="-post-jar">
 <jar destfile="${dist.jar}" update="true">
    <manifest>
        <attribute name="Manifest-Version" value="1.0" />           
        <attribute name="Extension-Name" value="polpol" />
        <attribute name="Class-Manager" value="org.nlogo.extensions.polpol.Manager" />
        <attribute name="NetLogo-Extension-API-Version" value="5.0" />
    </manifest>
 </jar>
</target>

जैसे थिहारा पहले से ही पूछे हैं, आपके पास एक ऐसा काम हो सकता है जो जार बनाता है? क्या आप अपने निर्मित जार (या कुछ समानताएं) टैग / कार्य में manifest = "MANIFEST.MF" हैं?

<target name="jar">
        <jar   manifest="path-to/MANIFEST.MF" basedir="base dir" destfile="outJarfileName">
        </jar>
    </target>

आपको "अपडेट मोड" का उपयोग करने की आवश्यकता है

<manifest file="${manifest.file}" mode="update">


मैंने एक्सेलिप बनाम नेटबीन्स 8.0.2 पर परीक्षण किया, दोनों जावा संस्करण 1.8 के साथ; मैंने माप के लिए System.nanoTime() उपयोग किया।

ग्रहण:

मुझे दोनों मामलों में एक ही समय मिला - लगभग 1.564 सेकंड

NetBeans:

  • "#" का प्रयोग करना: 1.536 सेकेंड
  • "बी" का प्रयोग: 44.164 सेकेंड

तो, ऐसा लगता है कि नेटबीन के प्रिंट पर कंसोल पर खराब प्रदर्शन है।

अधिक शोध के बाद मुझे एहसास हुआ कि समस्या Netbeans के अधिकतम बफर की line-wrapping है (यह System.out.println कमांड तक सीमित नहीं है), इस कोड द्वारा प्रदर्शित:

for (int i = 0; i < 1000; i++) {
    long t1 = System.nanoTime();
    System.out.print("BBB......BBB"); \\<-contain 1000 "B"
    long t2 = System.nanoTime();
    System.out.println(t2-t1);
    System.out.println("");
}

समय के परिणाम हर पांचवें पुनरावृत्ति को छोड़कर प्रत्येक पुनरावृत्ति के बाद 1 मिलीसेकंड कम होते हैं, जब समय का परिणाम लगभग 225 मिलीसेकंड होता है। कुछ ऐसा (नैनोसेकंड में):

BBB...31744
BBB...31744
BBB...31744
BBB...31744
BBB...226365807
BBB...31744
BBB...31744
BBB...31744
BBB...31744
BBB...226365807
.
.
.

और इसी तरह..

सारांश:

  1. ग्रहण पूरी तरह से "बी" के साथ काम करता है
  2. नेटबीन्स में एक लाइन-रैपिंग समस्या होती है जिसे हल किया जा सकता है (क्योंकि समस्या ग्रहण में नहीं होती है) (बी ("बी") के बाद जगह जोड़ने के बिना)।




java netbeans ant manifest netbeans-7