2012-11-21 12 views
6

के साथ एक्लिप्स क्रॉस-प्लेटफार्म बनाएं एप्लिकेशन को Maven और Tycho के साथ संकलित करने का प्रयास करें। यह ठीक काम करता है अगर मैं इसे सिर्फ एक मंच के लिए बनाता हूं लेकिन यदि मैं इसे और अधिक बनाने के लिए निर्माण करने की कोशिश करता हूं तो बिल्डिंग काम करना बंद कर देता है।मैवेन टाइको

समस्या यह है कि मेरे पास अपनी उत्पाद फ़ाइल में प्लेटफ़ॉर्म विशिष्ट प्लगइन्स हैं जिन्हें मैं बनाना चाहता हूं। org.eclipse.swt.win32.win32.x86 जैसे निर्भरता org.eclipse.swt के लिए खंड प्लगइन हैं।
जब मैं अपने उत्पाद में कोई प्लेटफार्म विशिष्ट टुकड़ा नहीं जोड़ता हूं तो एप्लिकेशन शुरू नहीं होगा क्योंकि org.eclipse.swt.win32.win32.x86 जैसी कोई प्लेटफ़ॉर्म लाइब्रेरी नहीं है। टाइपो रिपोजिटरी के रूप में हम अपने स्वयं के सर्वर पर होस्ट की गई ग्रहण इंडिगो अपडेट साइट के क्लोन का उपयोग करते हैं। इसमें डेल्टा-पैक शामिल है। और जब मैं सभी प्लेटफार्मों के लिए सभी टुकड़े जोड़ता हूं तो निर्माण दुर्घटनाग्रस्त हो जाता है और मैवेन मुझे बताता है कि प्लेटफॉर्म फ़िल्टर उदाहरण के लिए लिनक्स बिल्ड के लिए मेल नहीं खाते थे।

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

+0

यह प्रश्न पुराना है। वर्णित समस्या केवल Tycho 0.15.0 और इससे पहले में होती है। – oberlies

उत्तर

7

ऐसा लगता है कि आपके पास प्लग-इन आधारित उत्पाद है। इस मामले में आपको अपनी .product फ़ाइल को मैन्युअल रूप से संपादित करने और इन प्लग-इन के लिए प्लेटफ़ॉर्म फ़िल्टर में जोड़ने की आवश्यकता होगी। दुर्भाग्य से ग्रहण में निर्मित उत्पाद संपादक इन मानों का खुलासा नहीं करता है। http://wiki.eclipse.org/Tycho/FAQ#How_to_build_plugin-based_products_with_platform-specific_fragments.3F

प्रत्येक प्लगइन उदा। org.eclipse.swt.win32.win32.x86 आपको कुछ जोड़ने की आवश्यकता होगी;

<plugin id="org.eclipse.swt.win32.win32.x86" fragment="true" ws="win32" os="win32" arch="x86"/> 

नोट, यदि आप उत्पाद संपादक का उपयोग करते हैं तो यह इन मानों को हटा देगा।

हालांकि यह सुविधा आधारित उत्पाद का उपयोग करना बेहतर है। सुविधा संपादक इन फ़ील्ड को संपादित करने की अनुमति देता है।

+0

+1 वास्तव में जो मैं देख रहा था – msteiger

+0

यह अब Tycho 0.16.0 में (शायद 0.15.0 पहले) – msteiger

+1

@msteiger में आवश्यक प्रतीत नहीं होता है: यह सही है। [Tycho 0.16.0] के बाद से (https://bugs.eclipse.org/bugs/show_bug.cgi?id=342890), अब आपको उत्पाद फ़ाइल में ws/os/arch विशेषताओं को मैन्युअल रूप से सेट करने की आवश्यकता नहीं है - Tycho निर्माण स्वचालित रूप से उन्हें आपके लिए सेट करता है। – oberlies

1

वहाँ एक आसान समाधान मैं ब्लॉग में पाया जाता है:

<build> 
<plugins> 
    <plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>tycho-maven-plugin</artifactId> 
    <version>${tycho-version}</version> 
    <extensions>true</extensions> 
    </plugin> 

    <plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>target-platform-configuration</artifactId> 
    <version>${tycho-version}</version> 
    <configuration> 
     <resolver>p2</resolver> 
     <environments> 
      <environment> 
      <os>linux</os> 
      <ws>gtk</ws> 
      <arch>x86_64</arch> 
      </environment> 
      <environment> 
      <os>win32</os> 
      <ws>win32</ws> 
      <arch>x86_64</arch> 
      </environment> 
     </environments> 
    </configuration> 
    </plugin> 
</plugins> 
</build> 
: http://blog.sdruskat.net/building-a-cross-platform-feature-based-eclipse-rcp-product-with-tycho-the-umpteenth/

माता-पिता/मास्टर pom.xml में, p2 से सभी प्लग-इन का उपयोग करने के लिए निम्न निर्दिष्ट

मेरा टाइपो संस्करण 0.21.0