2011-01-18 10 views
74

मैं अपने स्नैपशॉट्स के साथ स्रोतों और जावडॉक्स को तैनात करना चाहता हूं। इसका मतलब यह है कि मैं निम्न आदेश automize हैं:स्रोतों और जावाडॉक के साथ स्नैपशॉट को कैसे तैनात किया जाए?

mvn clean source:jar javadoc:jar deploy 

बस निष्पादित करने के लिए:

mvn clean deploy 

मैं जावाडोक/स्रोतों पीढ़ी install चरण के दौरान मार डाला है नहीं करना चाहते (यानी स्थानीय बनाता है) ।

मुझे पता है कि स्रोत/जावाडोक प्लगइन्स को release प्लगइन के निष्पादन के साथ सिंक्रनाइज़ किया जा सकता है लेकिन मैं यह नहीं समझ सकता कि स्नैपशॉट रिलीज़ में इसे कैसे तारित किया जाए।

उत्तर

69
<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-source-plugin</artifactId> 
     <executions> 
     <execution> 
      <id>attach-sources</id> 
      <phase>deploy</phase> 
      <goals><goal>jar-no-fork</goal></goals> 
     </execution> 
     </executions> 
    </plugin> 
    <plugin> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <executions> 
     <execution> 
      <id>attach-javadocs</id> 
      <phase>deploy</phase> 
      <goals><goal>jar</goal></goals> 
     </execution> 
     </executions> 
    </plugin> 
    <plugin> 
     <!-- explicitly define maven-deploy-plugin after other to force exec order --> 
     <artifactId>maven-deploy-plugin</artifactId> 
     <executions> 
     <execution> 
      <id>deploy</id> 
      <phase>deploy</phase> 
      <goals><goal>deploy</goal></goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

एक पूर्ण उदाहरण के लिए Sonatype's OSS parent POM देखें।

+0

मैं इस सेटअप का उपयोग कर रहा हूं, और यह काफी अच्छी तरह से काम करता है। हालांकि मेरे पास दो छोटे मुद्दे थे: एक, उत्पन्न स्रोत "जार" लक्ष्य में शामिल नहीं हैं, आपको "जार-नो-कांटा" की आवश्यकता होगी। दो, रिलीज प्लगइन में एक बग है जो रिलीज स्रोतों को दो बार उत्पन्न करने का कारण बनता है (और इसलिए दो बार डिप्लोएड किया जाता है, जिससे रिपोजिटरी मैनेजर्स के साथ समस्याएं आती हैं) – mglauche

+1

'मेवेन-सोर्स-प्लगइन: जार' 'पैकेज 'से जुड़ा हुआ है डिफ़ॉल्ट रूप से चरण, ताकि आप सत्यापित कर सकें और एक ही चीज़ को पूरा कर सकें। इसके अलावा मुझे यकीन नहीं है कि आप इसे किसी भी तरह सत्यापित करने के लिए क्यों संलग्न करेंगे क्योंकि उस चरण का उद्देश्य "परियोजना को पैकेज करना और एकीकरण परीक्षण चलाएं" के लिए है। –

+0

@mglauche @matt आपकी टिप्पणियों के लिए धन्यवाद। मैंने अभी उचित बदलाव किए हैं। – sfussenegger

43

बस एक विकल्प है कि आप प्लगइन विन्यास के साथ गोबर के लिये की आवश्यकता नहीं है जोड़ने के लिए:

mvn -DperformRelease=true [goals] 

क्रेडिट से http://sea36.blogspot.com/2009/02/attaching-javadocs-and-sources-to-maven.html?showComment=1314177874102#c6853460758692768998

+3

मैं यह उल्लेख करना चाहता हूं कि यह सुविधा मैवेन (संभवतः मेवेन -4?) की भविष्य की रिलीज में जा सकती है। एक पोम मुक्त समाधान के लिए http://maven.apache.org/ref/3.1.1/maven-model-builder/super-pom.html – Dan

16

लेख दान से जाना जाता mcbeelen को जाता है भी एक और दृष्टिकोण है कि काम करता है का उल्लेख है poms को संशोधित किए बिना और किसी भी समय जल्द ही दूर नहीं जाना होगा:

mvn स्वच्छ जावाडोक: जार स्रोत: जार मैं तिनीहरू

कौन सा Maven साथ 3+ ठीक काम करता है, के साथ ...

mvn स्वच्छ जावाडोक साथ: जार स्रोत: जार

कौन सा मैं जेनकींस से परीक्षण किया है की तैनाती की तैनाती नेक्सस के लिए।

यह दृष्टिकोण अच्छा था क्योंकि मुझे केवल कुछ जेनकींस नौकरियों को संशोधित करना पड़ा और मुझे अपने पोम्स से गड़बड़ करने की आवश्यकता नहीं थी।

+3

धन्यवाद: बाहर Maven सुपर पोम के प्रोफ़ाइल अनुभाग में यहाँ टिप्पणी की जाँच करें! ध्यान दें कि ** जावाडोक: जार ** और/या ** स्रोत: जार ** से पहले दिखाई देना चाहिए ** स्थापित ** या ** तैनात **, या अतिरिक्त जार तैनाती के लिए "संलग्न" नहीं की जाएगी । – seanf

+1

क्या यह वही नहीं है जो ओपी ने कोशिश की लेकिन वह नहीं चाहता? – peedee

+0

एफडब्ल्यूआईडब्ल्यू ये विकल्प 'पैकेज' के साथ भी काम करते हैं:' एमवीएन क्लीन जावाडोक: जार स्रोत: जार पैकेज ' – ecoe

संबंधित मुद्दे

 संबंधित मुद्दे