ऐसा लगता है कि मैं अपने ही सवाल का एक और जवाब दे रहा हूँ ..
सबसे पहले, आप एक P2 रिपोजिटरी से एक बंडल पर निर्भरता को जोड़ने के लिए टाइको उपयोग कर सकते हैं:
- कॉन्फ़िगर निर्माण tycho-maven-plugin का उपयोग करने के लिए।
- एक P2 भंडार निर्दिष्ट करें। "ग्रहण-प्लगइन" करने के लिए
- सेट पैकेजिंग।
- अपने निर्माण के लिए एक प्रकट बनाएँ और आवश्यकता होती है-बंडल निर्भरता राज्य के लिए का उपयोग करें (जैसे org.eclipse.xsd)। बंडल-वर्जन को उसी संस्करण में भी सेट करें जिसे हमने pom.xml में हमारे निर्माण के लिए उपयोग किया था।
की कि आजमाइए करते हैं:
$ mvn dependency:tree
[INFO] com.example:org.eclipse.xsd:eclipse-plugin:0.0.1
[INFO] +- p2.eclipse-plugin:org.eclipse.xsd:jar:2.6.0.v20100914-1218:system
[INFO] ...
[INFO] \- p2.eclipse-plugin:org.eclipse.core.filesystem:jar:1.3.1.R36x_v20100727-0745:system
हमारी निर्भरता सफलतापूर्वक P2 रिपोजिटरी से हल किया गया है। दुर्भाग्य से, हम अभी तक नहीं कर रहे हैं। निर्भरता को सिस्टम स्कोप के साथ जोड़ा गया है, जिसका अर्थ है कि यदि हम एक वेबपैप बनाते हैं जो हमारे निर्माण पर निर्भर करता है तो कलाकृतियों को शामिल नहीं किया जाएगा। कि हल करने के लिए, हम पहले कुछ निर्देशिका के लिए निर्भरता में निहित सभी वर्गों को फिर से पैकेज है कि निर्देशिका एक जार के रूप में खोल करेंगे और फिर और हमारे निर्माण के अंतिम विरूपण साक्ष्य के रूप में उपयोग।
पहले भाग (खोल) के लिए, हम हमारे निर्माण करने के लिए Maven-निर्भरता-प्लगइन जोड़ने और इसे कॉन्फ़िगर पैकेज चरण के दौरान अपने खोल निर्भरता लक्ष्य को चलाने के लिए। दूसरे भाग (री-पैकेजिंग) के लिए, हम हमारे निर्माण करने के लिए Maven-विधानसभा-प्लगइन जोड़ने और इसे कॉन्फ़िगर पैकेज चरण के दौरान अपने एकल लक्ष्य को चलाने के लिए। हमें एक कस्टम असेंबली डिस्क्रिप्टर बनाने और कॉन्फ़िगर करने की भी आवश्यकता है।
हमारे निर्माण अब 3 फ़ाइलें के होते हैं: pom.xml में निर्माण फ़ाइल:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>org.eclipse.xsd</artifactId>
<version>0.0.1</version>
<packaging>eclipse-plugin</packaging>
<repositories>
<repository>
<id>helios</id>
<layout>p2</layout>
<url>http://download.eclipse.org/releases/helios</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>0.12.0</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/dependency</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/repackaged.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
प्रकट में META-INF/MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Ignored
Bundle-SymbolicName: Ignored
Bundle-Version: 0.0.1
Require-Bundle: org.eclipse.xsd
Bundle-Vendor: Ignored
src में विधानसभा वर्णनकर्ता /main/assembly/repackaged.xml:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>repackaged</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.directory}/dependency/</directory>
<outputDirectory>/</outputDirectory>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
</fileSets>
</assembly>
अब mvn पैकेज से सभी कोड शामिल एक जार फ़ाइल बनाएगा हमारे P2 निर्भरता,, एक उचित Maven विरूपण साक्ष्य के रूप में फिर से पैक तैयार एक अन्य परियोजना में एक निर्भरता के रूप में प्रयोग की जाने वाली।
$ jar tf target/org.eclipse.xsd-0.0.1-repackaged.jar
org/eclipse/xsd/ecore/XSDEcoreBuilder$1.class
org/eclipse/xsd/ecore/XSDEcoreBuilder$2.class
org/eclipse/xsd/ecore/XSDEcoreBuilder$Comparator.class
org/eclipse/xsd/ecore/XSDEcoreBuilder$EffectiveOccurrence.class
org/eclipse/xsd/ecore/XSDEcoreBuilder.class
मुझे नहीं पता कि आप अपनी टिप्पणी के दूसरे भाग में राजनीतिक रूप से किस बात का जिक्र कर रहे हैं। लेकिन आम तौर पर, यदि आप Tycho का उपयोग नहीं करना चाहते हैं, तो आप आगे बढ़ें और इस प्रश्न के लिए गैर-टाइको उत्तर ढूंढें और इसे यहां पोस्ट करें। –
इसमें एक कमी है: यदि आपका आईडीई टाइको/पी 2 (यानी नेटबीन्स) को समझ में नहीं आता है, तो यह कक्षा को कक्षा में जोड़ नहीं देगा और आपके पास स्वत: पूर्णता/नेविगेशन नहीं होगा, भले ही मेवेन के माध्यम से निर्माण वास्तव में काम करता है । –
क्या आप कृपया मुझे कुछ ऐसी ही समस्या के साथ मदद कर सकते हैं? http://stackoverflow.com/questions/38099426/is-it-possible-to-resolve-dependencies-in-maven-plugin-from-p2-repo – Disha