मैं निम्नलिखित कस्टम विधानसभा है:एक कस्टम विधानसभा वर्णनकर्ता के साथ प्रकट करने के लिए classpath जोड़े
<assembly>
<id>full</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
</assembly>
और निम्न कॉन्फ़िगरेशन अनुभाग:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>com.example.MyExample</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>./lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Maven विधानसभा प्लगइन पर प्रलेखन के अनुसार, इस मेनिफेस्ट फ़ाइल में क्लासपाथ आइटम जोड़ना चाहिए, हालांकि यह काम नहीं करता है। यदि मैं एकल के बजाय बहिष्कृत असेंबली लक्ष्य का उपयोग करता हूं, तो यह काम करता है।
मैंने देखा कि कहीं किसी ने उल्लेख किया है कि संग्रह अनुभाग केवल जार प्रारूप के साथ उपलब्ध है, लेकिन यही वह है जिसका मैं उपयोग कर रहा हूं।
जब उन्होंने असेंबली को हटा दिया: असेंबली, क्या उन्होंने इसे सही तरीके से करने का एक नया तरीका परिभाषित किया? मुझे वास्तव में बहिष्कृत कार्यक्षमता का उपयोग करना पसंद नहीं है, लेकिन अगर वे काम करने के तरीके को तोड़ते हैं और सही तरीके से दस्तावेज नहीं करते हैं, तो मुझे वास्तव में यह नहीं पता कि इससे कैसे बचें।
क्या किसी के पास यह सही तरीके से करने का कोई उदाहरण है?
मैंने बाद में जार से निर्भरताओं को हटा दिया है और उन्हें जार के साथ एक lib फ़ोल्डर में रख रहा हूं। हालांकि, समस्या अभी भी बनी हुई है। असेंबली प्लगइन क्लासपाथ निर्दिष्ट के रूप में नहीं जोड़ता है। – davija
ऐसा नहीं माना जाता है। जार प्लगइन में वह काम है। – bmargulies
असेंबली प्लगइन पर प्रलेखन के अनुसार, यदि आप इसे क्लासपाथ जोड़ने के लिए कहते हैं तो यह करता है। यह अन्य लक्ष्यों में काम करता है जो अब बहिष्कृत हैं। दस्तावेज़ों की जांच करें – davija