उपयोग कर रहा हूँ मैं नहीं जानता कि क्या config
में जाना होगा, लेकिन lib
और bin
आसान है।
copy all dependencies to a folder करने के लिए
सिर्फ इस कार्य करें: एक बिन फ़ोल्डर में अपने जार उत्पादन करने के लिए
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/dist/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
ऐसा करते हैं (reference page):
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<finalName>${project.artifactId}</finalName>
<outputDirectory>${project.build.directory}/dist/bin</outputDirectory>
</configuration>
</plugin>
आह, वहाँ अतिरिक्त आवश्यकताओं हैं
नीचे पंक्ति: मैं यह सब करना चाहता हूं, लेकिन डिफ़ॉल्ट "लक्ष्य" के व्यवहार को बदलना नहीं चाहता जैसे सी ompile और पैकेज आदि
इस मामले में मैं यह चालू करने के लिए एक प्रोफ़ाइल का उपयोग करेंगे:
<profile>
<id>dist</profile>
<build>
<plugins>
<!-- insert stuff from above here -->
</plugins>
</build>
</profile>
अब आप mvn clean package -Pdist
करना होगा अपने जिले निर्देशिका पाने के लिए और अगर आप न जोड़ें प्रोफाइल, आपको डिफ़ॉल्ट व्यवहार मिलता है।
मूल रूप से, चीजें चींटियों से चीजों से अलग तरीके से काम करती हैं। कोई लक्ष्य नहीं हैं, केवल जीवन चक्र चरण और प्लगइन लक्ष्य हैं।
आप एक जीवन चक्र चरण है, जो यह एक करने के लिए सभी Maven प्लगइन लक्ष्यों कि सभी चरणों के लिए बाध्य कर रहे हैं फोन करेगा निष्पादित कर सकते हैं या तो (जैसे अगर आप mvn compile
करते हैं, निम्नलिखित चरणों निष्पादित किया जाएगा: validate
, initialize
, generate-sources
, process-sources
, generate-resources
, process-resources
, compile
)। लेकिन dist
नामक जीवन चक्र चरण को परिभाषित करने के लिए कोई (आसान) तरीका नहीं है।
या आप एक विशिष्ट प्लगइन लक्ष्य निष्पादित कर सकते हैं (आप वास्तव में कई चरणों और/या प्लगइन लक्ष्यों को निष्पादित कर सकते हैं)। जैसे आप अपनी खुद की डिस्ट प्लगइन लिख सकते हैं और इसे mvn dist:dist
का उपयोग करके कॉल कर सकते हैं, लेकिन मैं इसकी अनुशंसा नहीं करता क्योंकि आप मौजूदा कार्यक्षमता का उपयोग कर रहे हैं और प्रोफ़ाइल समाधान एक बहुत अच्छा फिट होना चाहिए।
ठीक है, तो यह कार्रवाई कैसे लाएगी? क्या मैं 'एमवीएन पैकेज' चलाता हूं? मैं 'मेवेन डिस्ट' जैसे कुछ करना चाहता हूं और ऐसा करना (इसे प्रश्न में अपडेट किया गया) .. क्या यह संभव है? – jrharshath
+1 एचएम, सहायक। प्रश्न: क्या मैं पैकेज जीवन चक्र में या तैनाती में क्या करना चाहता हूं? और क्यों? – jrharshath
@simpatico मुझे लगता है कि यह सवाल का एक टिप्पणी होना चाहिए, मेरे जवाब के लिए नहीं, है ना? –