2015-01-14 8 views
7

में एकत्रित जावाडोक पैदा मैं एक Maven multimodule परियोजना कॉन्फ़िगर करने के लिए विधानसभा प्लगइन है, जो परियोजना में सभी submodules के लिए एकत्रित जावाडोक शामिल करना चाहिए के माध्यम से एक वितरण जिप उत्पादन करने के लिए कोशिश कर रहा हूँ।डुप्लिकेट forking से बचने के लिए कैसे जब एक multimodule परियोजना

परियोजना संरचना (सरलीकृत, वास्तव में के बारे में 20 मॉड्यूल है वहाँ) है:

Project X Core 
+- pom.xml (1) 
+- module-A 
| +- pom.xml (2) 
+-module-B 
| +- pom.xml (3) 
+-assembly 
     +- pom.xml (4) 

जहां assembly submodule कि वितरण जिप उत्पादन होता है। रूट पोम मॉड्यूल के रूप में सभी submodules सूचीबद्ध करता है, बदले में, प्रत्येक submodule के पोम अपने मूल के रूप में रूट पोम है। असेंबली प्लगइन package चरण से जुड़ा हुआ है। यह सब ठीक काम करता है।

समस्या तब होती है जब मैं असेंबली में शामिल करने के लिए समेकित जावाडोक ( जावाडोक जार, लेकिन HTML के साथ एक निर्देशिका) बनाने का प्रयास करता हूं। इस लक्ष्य को हासिल करने के लिए, मैं जड़ पोम में एक निर्माण प्लगइन के रूप में Maven-जावाडोक-प्लगइन कॉन्फ़िगर किया है, इस प्रकार है:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <encoding>utf8</encoding> 
       <quiet>true</quiet> 
       <links> 
        <link>http://docs.oracle.com/javase/6/docs/api/</link> 
       </links> 
      </configuration> 
      <executions> 
       <execution> 
        <id>create-javadoc</id> 
        <phase>package</phase> 
        <goals> 
         <goal>aggregate</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

इसके अलावा, मैं अपने विधानसभा वर्णनकर्ता कॉन्फ़िगर किया है विधानसभा submodule में, एक शामिल करने के लिए javadocs साथ, अपनी मूल परियोजना का लक्ष्य निर्देशिका से उठाया फ़ाइलसेट:

<fileSet> 
     <directory>../target/site/apidocs</directory> 
     <outputDirectory>docs/apidocs</outputDirectory> 
    </fileSet> 
समस्या मैं इस सेटअप के साथ सामना करना पड़ता है

यह है: मैं निम्नलिखित उत्पादन देखते हैं जब mvn package चल:

[INFO] Reactor Build Order: 
[INFO] 
[INFO] Project X Core 
[INFO] Project X: module A 
[INFO] Project X: module B 
[INFO] Project X: assembly 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Project X Core 1.0.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ projectX-core --- 
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.13:check (default) @ projectX-core --- 
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java16:1.0 
[INFO] 
[INFO] >>> maven-javadoc-plugin:2.10.1:aggregate (create-javadoc) > generate-sources @ projectX-core >>> 
[INFO]                   
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] Forking Project X Core 1.0.0-SNAPSHOT 
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ projectX-core --- 
[INFO]                   
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] Forking Project X: module A 1.0.0-SNAPSHOT 
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ projectX-modA --- 
[INFO]                   
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] Forking Project X: module B 1.0.0-SNAPSHOT 
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ projectX-modB --- 
Downloading: https://example.org/repositories/snapshots/org/example/project/projectX-modB/1.0.0-SNAPSHOT/modB-1.0.0-20141121.022310-7.jar 
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] Forking Project X: Assembly 1.0.0-SNAPSHOT 
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
Downloading: https://example.org/repositories/snapshots/org/example/project/projectX-modC/1.0.0-SNAPSHOT/maven-metadata.xml 
2/2 KB  
    (snip for brevity) 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Project X: module A 1.0.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ projectX-modA --- 
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ projectX-modA --- 
[debug] execute contextualize 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /Users/jeen/Projects/projectX/modA/src/main/resources 
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ projectX-modA --- 
[INFO] Compiling 52 source files to /Users/jeen/Projects/projectX/modA/target/classes 
[INFO] 
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ projectX-modA --- 
[debug] execute contextualize 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /Users/jeen/Projects/projectX/modA/util/src/test/resources 
[INFO] 
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ projectX-modA --- 
[INFO] Building jar: /Users/jeen/Projects/projectX/modA/target/modA-1.0.0-SNAPSHOT.jar 
[INFO] 
[INFO] >>> maven-javadoc-plugin:2.10.1:aggregate (create-javadoc) > generate-sources @ projectX-modA >>> 
[INFO]                   
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] Forking Project X Core 1.0.0-SNAPSHOT 
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ projectX-core --- 
[INFO]                   
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] Forking Project X Module A 1.0.0-SNAPSHOT 
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ projectX-modA --- 
[INFO]                   
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
[INFO] Forking ProjectX Module B 1.0.0-SNAPSHOT 
[INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
..... 

यह सिर्फ एक स्निपेट है, लेकिन इन "फोर्किंग" संदेशों को प्रत्येक सबमिशन के लिए कई बार बार-बार दोहराया जाता है (वास्तव में, वास्तविकता में लगभग 60 बार प्रति मॉड्यूल)। यह मुझे चिंतित करता है: ऐसा लगता है कि एक बहुत ही नकली काम चल रहा है। एक दूसरी चीज जो मुझे चिंतित करती है वह यह है कि यह स्पष्ट रूप से कलाकृतियों के दूरस्थ स्नैपशॉट डाउनलोड करता है जो वर्तमान रिएक्टर का हिस्सा हैं (ऊपर स्निपेट में 'डाउनलोडिंग' संदेश देखें)। मुझे यह इंगित करना चाहिए कि इन सभी डुप्लिकेट संदेशों के बावजूद, लक्ष्य हासिल किया जाता है: कुल जावाडोक का उत्पादन होता है, और असेंबली में शामिल किया जाता है।

तो, सवाल वास्तव में है: क्या (कुछ भी करता है, तो) मैं गलत कर रहा हूँ? क्या मुझे इन दोहराने वाले "फोर्किंग" संदेशों और स्नैपशॉट डाउनलोड को अनदेखा करना चाहिए, या क्या वे गलत सेटअप का संकेत हैं? यदि उत्तरार्द्ध, क्या किसी के पास कोई विचार है कि इसे सही तरीके से काम करने के लिए सेटअप को कैसे ट्विक करना चाहिए?

FWIW मैं पहले से ही विधानसभा submodule को जावाडोक प्लगइन config चलती सहित कई विकल्प विन्यास, की कोशिश की है, लेकिन यह से कोई भी मुझे अपेक्षित परिणाम दे दी है।

मैं, यह संक्षिप्त और बात करने के लिए बनाने का प्रयास किया अतिरिक्त जानकारी की जरूरत है, तो मुझे बताएं।

, रनिंग Maven 3.2.3 माध्यम से।

उत्तर

3

मुझे लगता है कि मेरे अपने प्रश्न का उत्तर मिल गया है।

समस्या जावाडोक प्लगइन विन्यास में है। चूंकि प्लगइन एग्रीगेटर प्रोजेक्ट के निर्माण खंड में है, इसलिए यह सबमिड्यूल द्वारा विरासत में मिलता है (जो तब प्रत्येक बारी में इसे निष्पादित करता है)। मैं इस एक ही समस्या हो रहा है

 <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <inherited>false</inherited> 
     ... 
+0

:

आप यकीन है कि प्लगइन विरासत में मिला समस्या का समाधान हो नहीं हो रही है।जब मेरे multimodule Maven निर्माण साइट पीढ़ी यह कहता है (लॉग में) करने के लिए आता है "की तैयारी का कुल 'रिपोर्ट' उत्पन्न-स्रोतों 'काँटेदार चरण निष्पादन की आवश्यकता है" और वहाँ आता है कि ">>>>>>>" के साथ संदेश "forking" ... भले ही मैंने आपके समाधान की कोशिश की है। कोई अन्य विचार? मैं भी इस की कोशिश की: https://maven.apache.org/plugins/maven-javadoc-plugin/examples/javadoc-nofork.html – tom

+0

FYI यहाँ मेरी संबंधित सवाल है https://stackoverflow.com/questions/47199146/maven -site-लक्ष्य का कारण बनता है-forking – tom

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