2010-11-15 14 views
77

ग्रहण से, मुझे मिला है, मैं आसानी से अपने प्रोजेक्ट के लिए एक चींटी बिल्ड फ़ाइल निर्यात कर सकता हूं। यह तृतीय पक्ष पुस्तकालयों और कुछ आधार लक्ष्यों के संदर्भ प्रदान करता है। मैं इसे अपनी वैश्विक बिल्ड फ़ाइल से उपयोग कर रहा हूं। एकमात्र चीज जो मुझे इस बारे में परेशान करती है, यह है कि यदि परियोजना संरचना में कुछ संशोधित किया गया है (जैसे कि एक नई तृतीय पक्ष लाइब्रेरी जोड़ना), तो हमें build.xml फ़ाइल को पुन: उत्पन्न करने के बारे में सोचना होगा (हां यह कभी-कभी कठिन हो सकता है!)। मुझे आश्चर्य है कि अगर कोई यहां स्वचालित रूप से अपडेट होने का तरीका जानता है। "स्वचालित रूप से" मेरा मतलब है कि स्पष्ट रूप से ग्रहण से यह आवश्यक नहीं होगा कि हर बार इसकी आवश्यकता हो। मुझे नहीं पता कि ट्रिगर क्या हो सकता है ...ग्रहण से स्वचालित रूप से ant build.xml फ़ाइल उत्पन्न करने का कोई भी तरीका?

इस पर कोई विचार या ज्ञान?

धन्यवाद!

एमजे

+1

आप एक कस्टम बिल्डर कदम जोड़ने पर देख रहे हैं की कोशिश की है? –

+0

मुझे यकीन नहीं है कि मैं इसके बारे में कैसे जा सकता हूं। मैंने परियोजना बिल्डरों को देखा है। मुझे लगता है कि वहां कुछ हो सकता है ... मैं शायद एक बिल्डर जोड़ सकता हूं जो मुख्य "जावा बिल्डर" हो जाने के बाद build.xml फ़ाइल उत्पन्न करेगा। क्या आप इसे बिल्डर कदम कहते हैं? अगर मैं परियोजना पर निर्यात चींटी बिल्डफाइल कार्रवाई को प्रोग्रामेटिक रूप से कॉल करने के बारे में कोई संकेत प्राप्त करता हूं तो मैं इसे आजमा सकता हूं। मुझे संदेह है कि यह भी संभव है। – Joanis

+0

हैलो एम।जोनिस, आखिर में आपको किस समाधान का पता चला? मैं एक ही चीज़ को हासिल करने की कोशिश कर रहा हूं, इसलिए यदि आप अपने निष्कर्ष साझा कर सकते हैं तो यह अच्छा होगा। – theDmi

उत्तर

70

एक ग्रहण परियोजना फिर "निर्यात" तो "सामान्य" फिर "चींटी फ़ाइलों का निर्माण" पर राइट क्लिक करें। मुझे नहीं लगता कि आउटपुट प्रारूप को अनुकूलित करना संभव है।

+0

क्षमा करें, मैंने "स्वचालित रूप से" पर एक नोट जोड़ा। जैसे मैंने कहा, मुझे पता है कि मैं आसानी से ऐसी फाइल को उत्पन्न और निर्यात कर सकता हूं। मुझे परेशान करने के लिए ग्रहण को हर बार इसे पुन: उत्पन्न करने के लिए कहने के लिए कहा जाता है। मैं अपनी परियोजनाओं पर स्वचालित रूप से "निर्यात चींटी buildfile" कार्रवाई को ट्रिगर करने के तरीके में रुचि रखूंगा। मुझे आउटपुट प्रारूप के साथ कोई समस्या नहीं है (अब तक)। – Joanis

+0

तब मुझे नहीं लगता कि यह मानक ग्रहण में संभव है। हो सकता है कि कुछ प्लगइन इसे अनुमति दें ... – Guillaume

+1

ऐसा लगता है कि वेब प्रोजेक्ट्स के लिए build.xml उत्पन्न होता है लेकिन कान के लिए नहीं। क्या मैं कान फ़ाइल के लिए build.xml उत्पन्न कर सकता हूं? –

2

अपनी परियोजना में .classpath फ़ाइल पर एक नज़र डालें, जिसमें शायद आपकी इच्छित अधिकांश जानकारी शामिल है। सबसे आसान विकल्प अपने स्वयं के "build.xml export" को रोल करना है, यानी प्रक्रिया .classpath बिल्ड के दौरान एक नए build.xml में, और उसके बाद इसे एंटी सबटास्क के साथ कॉल करें।

एक्सेलिप जेडीटी में हुक करने के बजाय थोड़ा एक्सएमएल पार्स करना मेरे लिए बहुत आसान लगता है।

+1

मैं पूरी तरह से सहमत हूं कि एक एक्सएमएल फाइल को पार्स करना एक ग्रहण प्लगइन या ऐसा कुछ लिखने से कहीं अधिक आकर्षक है। आपका सुझाव दिलचस्प है, लेकिन .classpath फ़ाइल "थोड़ा सा" संक्षिप्त नहीं है? मेरा 5 पथ प्रदान करता है और यही वह है। निर्यातित चींटी बिल्ड फ़ाइल के साथ क्या बढ़िया बात यह है कि न केवल यह पूरी चीज बनाने के लिए एक लक्ष्य प्रदान करता है, बल्कि यह जुनीट परीक्षण चलाने की अनुमति देने वाले सही लक्ष्य भी प्रदान करता है। में इसे याद रखूंगा। – Joanis

+0

अच्छा बिंदु। मैं उम्मीद करता हूं कि बिल्डिंग फाइलों में कौन से लक्ष्य उत्पन्न करना है, यह निर्धारित करते समय ग्रहण "परियोजना प्रकृति" को ध्यान में रखेगा। आप यह जांच सकते हैं कि एक्लिप्स कैसे build.xml उत्पन्न करता है, क्योंकि यह आंतरिक रूप से चींटी का उपयोग करता है। लेकिन यह आपको इन ग्रहण आंतरिकों को समझने के लिए "विज्ञान परियोजना" करने के लिए वापस ले जाता है। शायद बिल्डर कदम वास्तव में सही विकल्प हैं। –

5

मैं वही करने की कोशिश कर रहा हूं। मुझे जो मिला वह यह था कि "एक्सपोर्ट एंट बिल्डफाइल" को org.eclipse.ant.internal.ui.datatransfer.AntBuildfileExportPage.java फ़ाइल में लात मार दिया गया है। यह org.eclipse.ant.ui प्लगइन में रहता है।

स्रोत देखने के लिए, प्लग-इन विकास परिप्रेक्ष्य का उपयोग करें और प्लग-इन दृश्य खोलें। फिर org.eclipse.ant.ui प्लगइन पर राइट-क्लिक करें और> स्रोत प्रोजेक्ट के रूप में आयात करें का चयन करें।

मेरी योजना जावा प्रोग्राम बनाने के लिए प्रोग्राम प्रोग्रामिक रूप से चींटी बिल्डफाइल पीढ़ी को बंद करने के लिए है और इसे हर बार जब मैं अपनी परियोजनाओं के बिल्डरों को चींटी फ़ाइल जोड़कर निर्माण करता हूं तो एक एंट फ़ाइल में कॉल करता हूं (प्रोजेक्ट पर राइट-क्लिक प्राथमिकताएं , बिल्डर्स टैब के तहत)।

+2

एक बहुत ही आशाजनक पथ की तरह दिखता है। आपको ग्रहण प्लगइन आर्किटेक्चर की अच्छी समझ है। आपके द्वारा किए गए किसी भी प्रगति के बारे में हमें सूचित रखने के लिए आपसे अच्छा लगेगा। धन्यवाद! – Joanis

+0

अद्यतन: दुर्भाग्यवश, मेरे काम ने मुझे इसे लागू करने के लिए पर्याप्त समय नहीं दिया। इसके बजाए, यह एक टीम अनुष्ठान बन गया कि हर बार जब हम एक नई निर्भरता जोड़ते हैं तो टीम बिल्ड फाइलों को फिर से निर्यात करेगी। यह आदर्श नहीं है, लेकिन यह आत्म-लागू है क्योंकि अगर किसी ने बिल्ड फाइलों को निर्यात किए बिना सर्वर पर निर्माण निष्पादित करने का प्रयास किया तो यह आमतौर पर टूट गया। –

1

मैं वह हूं जिसने ग्रहण के लिए चींटी निर्यात फ़िल्टर दान किया है। मैंने ऑटो निर्यात सुविधा को जोड़ा, लेकिन केवल मेरे व्यक्तिगत प्लग-इन eclipse2ant पर, जिसे मैं अभी भी बग फिक्स को समन्वयित करने के लिए बनाए रखता हूं।

दुर्भाग्यवश मेरे पास आधिकारिक ग्रहण निर्माण में इसे विलय करने का कोई समय नहीं है।

2

यदि आपको केवल क्लासपाथ प्रविष्टियों की आवश्यकता है, तो मैं ग्रहण निर्माण पथ का उपयोग करने के लिए निम्न की तरह कुछ करता हूं।

<xmlproperty file=".classpath" collapseAttributes="true" delimiter=";" /> 

तब पथ

<path id="eclipse.classpath"> 
    <pathelement path="${classpath.classpathentry.path}"/> 
</path> 


<target name="compile" depends="init"> 

    <javac srcdir="${src}" destdir="${build}" updatedProperty="compiled"> 
     <classpath refid="eclipse.classpath"/> 
    </javac> 
</target> 
4

मैं एक ही समस्या मिला है, हमारे काम के माहौल ग्रहण जावा परियोजनाओं पर आधारित है में है कि मूल्य निर्धारित करते हैं, और हम अपने आप इतना है कि एक चींटी फ़ाइल बनाने की जरूरत हम निरंतर एकीकरण सर्वर (जेनकींस, हमारे मामले में) का उपयोग कर सकते हैं।

हम चींटी उपकरण है, जो GitHub पर अब उपलब्ध है के लिए अपने स्वयं ग्रहण जावा बाहर लुढ़का:

ant-build-for-java

इसके इस्तेमाल के लिये फोन:

java -jar ant-build-for-java.jar <folder with repositories> [<.userlibraries file>] 

पहला तर्क फ़ोल्डर है भंडार के साथ। यह किसी भी .project फ़ाइल के लिए फ़ोल्डर को फिर से खोजेगा। उपकरण दिए गए फ़ोल्डर में build.xml बनाएगा।

वैकल्पिक रूप से, दूसरा तर्क एक्सीप्से से निर्यात की गई .userlibraries फ़ाइल हो सकती है, जब कोई भी परियोजना ग्रहण उपयोगकर्ता पुस्तकालयों का उपयोग करती है। टूल को केवल सापेक्ष पथों का उपयोग करके उपयोगकर्ता पुस्तकालयों के साथ परीक्षण किया गया था, इस प्रकार हम उन्हें अपने रेपो में उपयोग करते हैं। इसका तात्पर्य है कि परियोजनाओं द्वारा जार और अन्य अभिलेखागार एक ग्रहण परियोजना के अंदर हैं, और वहां से संदर्भित हैं।

उपकरण केवल अन्य ग्रहण परियोजनाओं और ग्रहण उपयोगकर्ता पुस्तकालयों से निर्भरताओं का समर्थन करता है।

0
  • करें फ़ाइल> मुख्य मेनू से निर्यात (या परियोजना का नाम पर राइट क्लिक करें और चुनें निर्यात करें> निर्यात ...)।
  • निर्यात संवाद में, सामान्य> चींटी Buildfiles इस प्रकार का चयन करें: enter image description here

  • क्लिक करें अगला। जेनरेट एंट बिल्डफिलस्क्रीन में:

    • सूची में प्रोजेक्ट की जांच करें।
    • "ग्रहण कंपाइलर का उपयोग कर प्रोजेक्ट संकलित करने के लिए लक्ष्य बनाएं" विकल्प को अनचेक करें - क्योंकि हम एक बिल्ड फ़ाइल बनाना चाहते हैं जो ग्रहण से स्वतंत्र है।
    • डिफ़ॉल्ट के रूप में चींटी buildfile के लिए नाम छोड़ दो: इस प्रकार build.xml

enter image description here

  • क्लिक करें समाप्त, ग्रहण परियोजना की निर्देशिका के अंतर्गत build.xml फ़ाइल उत्पन्न करेगा:
    enter image description here
  • पर डबल क्लिक करेंफ़ाइल चींटी संपादक में अपनी सामग्री को खोलने के लिए: enter image description here

source

संबंधित मुद्दे