के साथ एकाधिक आर्किटेक्चर एसडब्ल्यूटी एप्लिकेशन बनाएं मैंने एक एसडब्ल्यूटी एप्लीकेशन के लिए एक मेवेन प्रोजेक्ट स्थापित किया है। यह एप्लिकेशन कई प्लेटफार्मों (ओएस एक्स, विंडोज 64-बिट, विंडोज 32-बिट, लिनक्स 64-बिट और लिनक्स 32-बिट) पर चलता है और मैंने इसे सेट अप किया है ताकि मंच का पता चल जाए जब मैवेन चलाया जाता है और पैक किया जाता है आवेदन विभिन्न गंतव्य निर्देशिकाओं पर जाता है। यहाँ pom.xml से प्रासंगिक भागों इस लक्ष्य को हासिल करने के लिए कर रहे हैं:मैवेन
<profiles>
<profile>
<id>linux_x86_64</id>
<activation>
<os>
<name>linux</name>
<arch>amd64</arch>
</os>
</activation>
<build>
<directory>${project.basedir}/target/${project.version}/linux_x86_64</directory>
</build>
</profile>
<profile>
<id>win32_x86_64</id>
<activation>
<os>
<name>linux</name>
<arch>i386</arch>
</os>
</activation>
<build>
<directory>${project.basedir}/target/${project.version}/win32_x86_64</directory>
</build>
</profile>
...
</profiles>
और SWT के लिए इस्तेमाल किया निर्भरता यह है:
<dependencies>
<dependency>
<groupId>org.eclipse</groupId>
<artifactId>swt</artifactId>
<version>3.7.2.v3740</version>
</dependency>
...
</dependencies>
बातें स्पष्ट, मैं अपने स्थानीय भंडार SWT में स्थापित किया है करने के लिए डमी पैकेज (org.eclipse.swt_3.7.2.v3740f.jar) और सभी प्लेटफ़ॉर्म-विशिष्ट वाले (org.eclipse.swt.gtk.linux.x86_64_3.7.2.v3740f, org.eclipse.swt.win32.x86_64_3 .7.2.v3740f, आदि)।
जिस तरह से मैं निर्भरता पैक करता हूं वह मैवेन-निर्भरता-प्लगइन का उपयोग करके "lib" फ़ोल्डर के साथ होता है और मैवेन एसडब्ल्यूटी डमी पैकेज और प्लेटफार्म-विशिष्ट मशीन दोनों को कॉपी करने के लिए पर्याप्त स्मार्ट है जहां मैं पैकेजिंग कर रहा हूं आवेदन। अब तक बहुत अच्छा ...
समस्या यह है कि मैं एक ही मशीन से विभिन्न प्लेटफॉर्म के लिए एप्लिकेशन को संकलित करना चाहता हूं। मैं इसे कैसे प्राप्त करूं?
मैं (Windows 64-बिट के लिए उदाहरण) इस तरह, एक मंच के लिए आवश्यक SWT जार के साथ प्रत्येक प्रोफ़ाइल में एक संपत्ति की स्थापना की कोशिश की है:
<properties>
<swt.artifactId>swt.win32.x86_64</swt.artifactId>
<swt.version>3.7.2</swt.version>
</properties>
लेकिन इस दृष्टिकोण दोनों प्रोफ़ाइल- लेने विशिष्ट SWT जार और प्लेटफ़ॉर्म-विशिष्ट एक मैं कहाँ चल रहा हूँ Maven "lib" निर्देशिका में कॉपी हो, तीन जार के साथ समाप्त:
- SWT-3.7.2.v3740.jar
- SWT .gtk.linux.x86_64-3.7.2.jar
- swt.win32.x86_64-3.7.2.jar
वहाँ एक रास्ता है, जिसमें मैं मशीन मैं कहाँ हूँ अनदेखी एक प्रोफ़ाइल निर्दिष्ट कर सकते है इसे चला रहा है ताकि मुझे अपने एसडब्ल्यूटी जार को मैन्युअल रूप से हटाने की आवश्यकता न हो?
अग्रिम धन्यवाद।
वही है जो मैंने पहले कोशिश की थी और परिणाम मेरे मूल प्रश्न में वर्णित लोगों के समान ही हैं। ऐसा लगता है कि इससे कोई फर्क नहीं पड़ता कि, मैवेन सिस्टम के एसडब्ल्यूटी जार को पैकेज करता है जहां यह चल रहा है। – Alf
यह सुनकर खेद है, आप इसे एक कोशिश करना चाहेंगे: http://mchr3k.github.com/swtjar/ – hennr
धन्यवाद, मैं निश्चित रूप से इसे आज़मा दूंगा, हालांकि मुझे संदेह है कि मैवेन पैकेज करने का प्रयास करेगा मेजबान से पुस्तकालय कोई फर्क नहीं पड़ता कि क्या। मैं तुम्हें तैनात रखेंगे। – Alf