2010-02-27 8 views
13

मैं वर्तमान में ओएसजीआई बंडल प्रोजेक्ट बनाने के लिए हेडलेस मोड में पीडीई बिल्ड का उपयोग कर रहा हूं। पीडीई Antrunner कार्य एक ग्रहण स्थापना का उपयोग करता है और मैं बस इसे अपने स्थानीय ग्रहण स्थापना के लिए इंगित कर रहा हूँ।ग्रहण: एक मुखर पीडीई निर्माण के लिए आवश्यक न्यूनतम ग्रहण स्थापना क्या है?

दुर्भाग्य से मेरी ग्रहण स्थापना लगभग 260 एमबी बड़ी है, लेकिन मुझे लगता है कि एक पीडीई बिल्ड को उन सभी प्लगइन्स को मानक ग्रहण स्थापना में आवश्यकता नहीं है।

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

मेरा लक्ष्य मेरे प्रोजेक्ट के एसवीएन में इस "बिल्ड-एक्लिप्स" फ़ोल्डर को भी चेक-इन करना है ताकि जब आप इसे चेक आउट करते हैं, तो आपके पास किसी भी build.properties को छूए बिना पूर्ण निर्माण शुरू करने के लिए आवश्यक सब कुछ है। लेकिन अगर मुझे शायद 20 एमबी की आवश्यकता हो तो मैं 266 एमबी ग्रहण नहीं करना चाहता हूं।

धन्यवाद क्रिस्टोफ

उत्तर

3

मैं सीधे अपने सवाल का जवाब नहीं कर सकते हैं, लेकिन मैं एक छोटा सा, जिनमें से कुछ मदद कर सकता है आप एक असली जवाब खोजने के चारों ओर अपने हाथ तरंगित हो सकते हैं।

मेरी PDE अनुभव में मैं ने पाया है कि यह बहुत ही उपयोगी भेद करने के लिए:

  • The Eclipse आईडीई मैं इंटरैक्टिव संपादन के लिए उपयोग कर रहा था
  • "ग्रहण" स्थापना मैं बिना सिर PDE के लिए उपयोग कर रहा था बनाता
  • "लक्ष्य मंच" (प्लग इन/सुविधाओं/आदि बात मैं कर रहा हूँ निर्माण पर निर्भर करता है के सेट।)

यह इन की तरह लगता है स्पष्ट है, अपने दिमाग में अलग अवधारणाओं के रूप में अच्छी तरह से कर रहे हैं: आप पहले से ही "लक्ष्य मंच" को अलग कर दिया है और आपके पीडीई बिल्डर से अपने इंटरैक्टिव ग्रहण को अलग करना चाहते हैं।

आप अपने इंटरैक्टिव ग्रहण में एक नया (खाली) कार्यक्षेत्र बनाने का प्रयास कर सकते हैं (बस यह सुनिश्चित करने के लिए कि आप इसे अपने लक्ष्य प्लेटफॉर्म पर नहीं देख रहे हैं), "प्लग-इन" दृश्य खोलकर, राइट-क्लिक करें आशाजनक दिखने वाला प्लग-इन org.eclipse.pde.build, और "खुली निर्भरता" चुनना। "फ्लैट लेआउट" पदानुक्रम की तुलना में परिणामों को देखने का एक और अधिक उपयोगी तरीका हो सकता है, हालांकि मेरे ग्रहण में मैं इस सूची को कॉपी और पेस्ट करने में सक्षम नहीं हूं।

मेरे मामले में इसने जेडीटी में कुछ भी उल्लेख नहीं किया जो मुझे लगता है कि वास्तव में जावा-आधारित प्लग-इन बनाने की कोशिश करना विफल हो जाएगा, लेकिन उम्मीद है कि यह एक और लीड प्रदान करेगा (उदाहरण के लिए "org.eclipse.jdt नहीं मिल सकता ", या कुछ और)।

ऐसा लगता है कि सॉफ़्टवेयर अपडेट मैकेनिज्म, लक्ष्य प्लेटफ़ॉर्म, या बकिमिस्टर का उपयोग करने के लिए एक तरीका होना चाहिए, बस एक प्लग-इन नाम दें और अन्य सभी जगहों पर आ जाएं। हो सकता है कि आप लक्ष्य प्लेटफॉर्म का उपयोग कर सकें, आपको आवश्यक प्लग-इन का चयन करें, आवश्यक लोगों का चयन करने के लिए बटन दबाएं, फिर किसी भी तरह से "बिल्ड" निर्यात करें जो प्रभावी रूप से उन सभी प्लग-इन को एकत्रित करेगा?

मैं कबूल करता हूं कि हमने कुछ समय पहले एक इंटरैक्टिव ग्रहण में जांच की थी और इसे हमारे पीडीई निर्माता के रूप में उपयोग किया था। हम इसे अंतःक्रियात्मक रूप से उपयोग नहीं करते हैं, और हम एक अलग लक्ष्य मंच भी बनाए रखते हैं।हमारा पीडीई बिल्डर स्पष्ट रूप से न्यूनतम नहीं है, लेकिन शायद यह भी खड़ा हो सकता है, इसलिए मुझे आशा है कि आप इस खोज को अपनी खोजों के साथ अपडेट करेंगे।

+0

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

+0

ठीक है यहां मेरे पहले निष्कर्ष हैं: org.eclipse.pde.build और निर्भरता निर्माण करने के लिए पर्याप्त नहीं हैं। बिल्ड प्रक्रिया किसी भी तरह डिबगिंग आउटपुट के बिना बंद हो जाती है, इसलिए मुझे सबसे पहले यह पता लगाना होगा कि वास्तव में हुड के नीचे क्या होता है। क्या आप किसी भी कमांड लाइन तर्क के बारे में जानते हैं ताकि मैं निर्माण प्रक्रिया के आंतरिक के बारे में अधिक डिबगिंग आउटपुट प्राप्त कर सकूं? (उदाहरण के लिए-verbose या कुछ) यदि मुझे पता है कि क्या गुम है, तो मैं आवश्यक प्लगइन को चरण-दर-चरण ढूंढने का प्रयास करता हूं और इसे यहां पोस्ट करूंगा। धन्यवाद क्रिस्टोफ – Christoph

+0

क्रिस्टोफ, मुझे यकीन नहीं है। । । लेकिन जब आप कमांड लाइन पीडीई बिल्ड चलाते हैं, तो जिस तरह से आप ओएसजीआई रनटाइम को फायर कर रहे हैं, जैसा कि मैं समझता हूं कि इसमें ग्रहण "वर्कस्पेस" जैसा कुछ है जहां यह निर्भरता सूचना कैश कर सकता है और यहां भी - यहां प्रासंगिक - लॉग फाइलें रखें। हो सकता है कि आप यह पता लगा सकें कि "वर्कस्पेस" कहां है और इसका लॉग पढ़ता है? –

5

मुझे अंततः इसे आज करने की आवश्यकता है (a problem I was having where directories with spaces in their names weren't being included in the bundle PDE Build produced को संबोधित करने के लिए)। मुझे अंत में ऐसा कुछ मिला जो मेरे (जावा-आधारित) प्लग-इन का संग्रह बना सकता था। मुझे नहीं पता कि यह "न्यूनतम" है, लेकिन यह जावा पीडीई बिल्ड-केंद्रित है और पूर्ण ग्रहण आईडीई इंस्टॉल से बहुत छोटा है।

मैंने किसी न किसी नोट्स को लिया; यहां कुछ चूक या अनावश्यक कदम हो सकते हैं, लेकिन मुख्य में इसे मार्गदर्शन करना चाहिए।

मैं:

  1. हाल ही में एक ग्रहण आईडीई ऊपर निकाल दिया (मेरे मामले, 3.5 उदाहरण मैं इस समय का उपयोग में)।
  2. स्क्रैच वर्कस्पेस का उपयोग किया जाता है, इसलिए लक्ष्य प्लेटफ़ॉर्म में परिवर्तन मेरी "असली" परियोजनाओं को गड़बड़ नहीं करेगा।
  3. यह सुनिश्चित कर लें कि लक्ष्य प्लेटफ़ॉर्म उस स्थान पर सेट किया गया था जहां मैं अपने पीडीई बिल्डर के प्लग-इन को आकर्षित करना चाहता था (मेरे मामले में, बस मेरे चल रहे ग्रहण)। (विंडो | प्राथमिकताएं ... | प्लग-इन विकास | लक्ष्य प्लेटफ़ॉर्म)
  4. एक नया खाली प्रोजेक्ट बनाया गया।
  5. उस प्रोजेक्ट के भीतर एक नया उत्पाद कॉन्फ़िगरेशन बनाया गया ("मूल सेटिंग्स" का उपयोग करके)।
    • org.eclipse.pde.build
    • org.apache.ant:
    • नए उत्पाद विन्यास के "सारांश" पृष्ठ पर, अनियंत्रित "। उत्पाद देशी लांचर कलाकृतियों में शामिल हैं"
    • निर्भरता पर, उत्पाद का गठन करने के रूप में निर्दिष्ट निम्न प्लग-इन
    • org.eclipse.jdt.core
  6. चेक किए गए "वैकल्पिक निर्भरता को शामिल करें। । "
  7. " आवश्यक प्लग-इन जोड़ें "पर क्लिक किया गया।
  8. पैकेज एक्सप्लोरर में राइट-क्लिक की गई उत्पाद परिभाषा और "निर्यात ..." चुना गया। ग्रहण उत्पाद "।
  9. इसे बताया जहां मैं अपने पीडीई बिल्डर उदाहरण को जाना चाहता था।
  10. अनचेक "निर्यात करने से पहले सिंक्रनाइज़ करें"।
  11. अनचेक "मेटाडेटा भंडार जेनरेट करें"।
  12. "समाप्त करें" पर क्लिक किया गया।

अब मैं निम्नलिखित की तरह एक मैक्रो लागू द्वारा लांच एक PDE मेरे सामान्य चींटी निर्माण से निर्माण (करने के लिए जारी) कर सकते हैं (एक बेहतर तरीका है?):

<macrodef name="build-a-product"> 
    <attribute name="config-dir"/> 
    <sequential> 
     <property name="product-build-file" value="${pde-builder-path}\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml" /> 
     <java jar="${pde-builder-path}\plugins\org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar" fork="yes" failonerror="yes" > 
      <arg value="-application" /> 
      <arg value="org.eclipse.ant.core.antRunner" /> 

      <arg value="-buildfile" /> 
      <arg value="${product-build-file}" /> 

      <arg value="[email protected]{config-dir}" /> 

      <arg value="-Dbasedir=${basedir}" /> 
     </java> 
    </sequential> 
</macrodef> 
+0

हाय वुडी, यह अच्छी खबर है। मेरे पास इस मुद्दे में खुदाई जारी रखने के लिए हाल ही में पर्याप्त समय नहीं था। लेकिन माई मुझे कुछ समय मिलेगा, ताकि मैं आपके निष्कर्षों को सत्यापित कर सकूं। एमबी में वास्तविक आकार क्या है जिससे आप अपनी बिल्ड ग्रहण स्थापना को कम कर सकते हैं? – Christoph

+0

मेरे मामले में, परिणाम 20 एमबी से थोड़ा कम था। यह अभी भी इसके लिए बहुत बड़ा लगता है - शायद मुझे उन वैकल्पिक निर्भरताओं को शामिल नहीं किया जाना चाहिए - लेकिन यह मेरे लिए काम करता है। –

+0

मुझे आज ऐसा करने की ज़रूरत है ताकि मैं जावा 8 में निर्माण कर सकूं। यह अब अलग है कि मेरा ग्रहण आईडीई मंगल 1 पर है: 1) चरण 7 में "निर्भरता" टैब अब "सामग्री" लेबल किया गया है। 2) मैंने भी (चरण 7 में) org.eclipse.equinox.launcher प्लग-इन जोड़ा है ताकि मेरे पास पीडीई बिल्ड का आह्वान करने का कोई तरीका हो। 3) निर्यात करने के बाद, मैंने अपने चींटी buildfile में विशेष प्लग-इन संस्करणों के लिए कुछ पथ अपडेट किए। और ऐसा लगता है कि इसके बारे में! नया पीडीई बिल्ड निर्यात लगभग 28 एमबी (विंडोज़ पर) है। –

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