केवल MANIFEST.MF प्रविष्टियों को बदलकर प्रारंभ करें जैसे कि आपके सभी कलाकृतियों को बंडल बनें - वे स्पष्ट रूप से जादुई रूप से काम नहीं करेंगे लेकिन यह एक अच्छा विनाशकारी पहला कदम है।
Maven गठरी-प्लगइन का उपयोग करते समय, सुनिश्चित करें कि आप extensions
और supportedProjectTypes
सेट के रूप में आप समस्या हो सकती है सीआई बनाता है के साथ Maven रेपोस और m2e नाकाम रहने अगर पैकेजिंग प्रकार bundle
(अंत देखें)।
अपने जोखिम भरा/कोर बाहरी निर्भरताओं को जल्दी से जांचें - उदाहरण के लिए यदि आप दृढ़ता के लिए जेपीए का उपयोग कर रहे हैं तो सुनिश्चित करें कि प्रदाता आपके डोमेन बंडल और जेडीबीसी ड्राइवर के साथ ओएसजीआई पर्यावरण में काम करता है।
यदि आप करफ या कन्या में जावा ईई/वसंत देखो से माइग्रेट कर रहे हैं। लेकिन यदि आपके घटक एम्बेडेड सिस्टम के लिए हैं या कोई बाहरी निर्भरता नहीं है तो फ़ेलिक्स या विषुव पर्याप्त हो सकता है (हालांकि यदि यह मामला है तो pax-url प्रोजेक्ट देखें)।
डोमेन/प्रौद्योगिकियों के बारे में थोड़ा और विशिष्ट होने के लिए अपने प्रश्न को संपादित करने लायक हो सकता है?
ग्रहण: ग्रहण केवल उत्पन्न करता है कि जब परियोजना पहले कॉन्फ़िगर किया गया है, m2e के जीवनचक्र समस्याओं दर्द का एक सा हो सकता है, लेकिन यह अब तक पुराने ग्रहण प्लग का उपयोग करने से बेहतर है।
निम्नलिखित आपके मौजूदा कलाकृतियों में किसी भी अन्य तरीके से बिना प्रकट किए मैनिफेस्ट प्रविष्टियां जोड़ देगा। यह मैवेन-बंडल-प्लगइन द्वारा उत्पन्न MANIFEST.MF का उपयोग करने के लिए मानक मेवेन जार और युद्ध प्लगइन्स को बताता है।
माता पिता पोम में रखें यह:
<pluginManagement>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<archive>
<addMavenDescriptor>true</addMavenDescriptor>
</archive>
<supportedProjectTypes>
<supportedProjectType>jar</supportedProjectType>
<supportedProjectType>war</supportedProjectType>
</supportedProjectTypes>
<instructions>
<Built-By>${project.organization.name}</Built-By>
<Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
<Bundle-ContactAddress>${project.organization.url}</Bundle-ContactAddress>
<Bundle-Description>${project.description}</Bundle-Description>
<Bundle-DocURL>${bundle.doc.url}</Bundle-DocURL>
<Bundle-Category>${bundle.category}</Bundle-Category>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Import-Package>*</Import-Package>
<Export-Package>*</Export-Package>
</instructions>
</configuration>
<executions>
<execution>
<id>bundle</id>
<goals>
<goal>manifest</goal>
</goals>
<phase>prepare-package</phase>
<inherited>true</inherited>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>create-war</id>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
<inherited>true</inherited>
</execution>
</executions>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</pluginManagement>
तो बच्चे poms में
, तो आप बस कर सकते हैं:
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
</plugin>
<!-- Below is mutually exclusive: Either jar or war plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
</plugins>
</build>
के साथ काफी बेहतर माइलेज होगा मेरे पास इन कुछ बंडलों को चलाने के दो विकल्प हैं 1) एम्बेडेड अपाचे फ़ेलिक्स बुद्धिमान WAR 2) Witin WAB –
मैंने अपनी पोस्ट को तकनीकों के साथ अपडेट किया है। क्या आपने टाइको की कोशिश की है? –
बहुत जानकारीपूर्ण पोस्ट - पीओएम सामग्री विशेष रूप से उपयोगी है, धन्यवाद कानकैम। उपयोगकर्ताओं को ध्यान दें: यदि आप एक जेएआर पर चल रहे हैं तो आपको मेवेन-वॉर-प्लगइन सेक्शन पर टिप्पणी करनी होगी, अन्यथा पैकेज लक्ष्य विफल हो जाएगा। – KomodoDave