2009-07-28 5 views
18

मेवेन जावाडोक प्लगइन का उपयोग करके आप कुछ पैकेजों को बाहर कर सकते हैं - लेकिन मेरे पास बहुत सारे पैकेज हैं और केवल कुछ हद तक कक्षाएं जिन्हें मैं जवाडोक का उत्पादन करना चाहता हूं।मेवेन जावाडोक प्लगइन - मैं केवल कुछ कक्षाओं को कैसे शामिल कर सकता हूं?

क्या बाहर करने के बजाए शामिल करने का कोई तरीका है?

मैं पैकेज स्तर की बजाय कक्षा स्तर पर चीजें भी करना चाहूंगा क्योंकि मेरे पास पैकेज में कुछ कक्षाएं हैं जिन्हें जवाडोक और कुछ नहीं चाहिए।

उत्तर

5

अंत मैं वर्गों मैं जावाडोक करना चाहता था युक्त दो संकुल निर्दिष्ट करने के लिए sourcepath विन्यास विकल्प का इस्तेमाल किया और उन पैकेज है कि मैं नहीं चाहता था की कक्षाओं में दे दी है में जावाडोक डिफ़ॉल्ट पहुंच। सार्वजनिक रूप से show कॉन्फ़िगरेशन विकल्प को सेट करने से मुझे यह चुनने की अनुमति मिलती है कि जनता को एक्सेस करके जावडोक किस वर्ग के लिए बनाया गया था।नीचे पूर्ण विन्यास:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <configuration> 
     <links> 
      <link>http://java.sun.com/j2se/1.5.0/docs/api/</link> 
     </links> 
     <source>1.5</source> 
     <show>public</show> 
     <doctitle>Foo API</doctitle> 
     <title>Foo API</title> 
     <bottom><![CDATA[Copyright notice]]></bottom> 
     <sourcepath>${basedir}/src/main/java/com/foo/api;${basedir}/src/main/java/com/bar/api</sourcepath> 
    </configuration> 
</plugin> 

बहरहाल, यह अनिवार्य रूप से एक समाधान नहीं है और मैं दृढ़ता से शेक के टिप्पणी के साथ सहमत हैं कि इस Maven-जावाडोक-प्लगइन के खिलाफ एक enchancement के रूप में यह जावाडोक उपयोगिता के द्वारा समर्थित है होना चाहिए। http://jira.codehaus.org/browse/MJAVADOC

+0

नीचे आरक्रॉस का जवाब नोट करें। ओपी ने अनुरोध किया है कि यह ओपी अनुरोध किया गया है, भले ही स्वीकृत उत्तर से बहुत अधिक तारीख में जोड़ा गया हो। –

+0

हां, इसे करने की क्षमता सितंबर 2012 में मेवेन-जावाडोक-प्लगइन में जोड़ा गया था, स्वीकृत उत्तर सबमिट करने के कुछ अच्छे सालों बाद! – RCross

1

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

बहिष्कृत पैकेज नाम कॉन्फ़िगरेशन वाइल्डकार्ड की अनुमति देता है। इसलिए जब तक आपके पास एक पैकेज नाम सम्मेलन है जो आपको अनुमति देता है कि आप अधिकांश पैकेजों को बाहर कर सकते हैं।

कहें कि आपके पास ये पैकेज हैं।

com.foo 
com.foo.api 
com.foo.internal 
com.foo.internal.core 
com.foo.internal.util 
com.foo.internal.ui 
com.foo.ui 

और आप केवल foo, foo.api और foo.ui बेनकाब करना चाहते हैं, इस पद्धति से काम करेगा:

<excludePackageNames>com.foo.internal.*:com.foo.bob</excludePackageNames> 

आप वैकल्पिक रूप से अलग पैकेज में हमलावर प्रकार के लिए कदम सकता है, लेकिन यह नहीं है ऐसा करने का एक अच्छा कारण है।

इन प्रकारों के लिए जावाडोक उत्पन्न करने में समस्या क्या है?

+0

आप केवल विशिष्ट वर्गों के लिए जावाडोक निर्दिष्ट करने के लिए की जरूरत पर सवाल उठाने सही रास्ते पर हो सकता है, यह Maven-जावाडोक-प्लगइन कॉन्फ़िगर करने के लिए संभव है करने के लिए केवल विशिष्ट वर्गों के लिए जावाडोक उत्पन्न करते हैं। नीचे मेरा जवाब देखें। – shek

+0

यह अच्छा है, आप हर दिन कुछ सीखते हैं। आपको +1 –

+0

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

14

maven-javadoc-plugin का उपयोग करके, आप विशिष्ट जावा वर्गीकरण निर्दिष्ट नहीं कर सकते हैं (हालांकि आप जावाडॉक उपयोगिता के साथ कर सकते हैं, नीचे देखें)। हालांकि, javadoc के लिए sourcepath कॉन्फ़िगरेशन विकल्प के माध्यम से: javadoc लक्ष्य, आप विशिष्ट संकुल को कॉन्फ़िगर कर सकते हैं। इस का एक उदाहरण इस प्रकार है:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <version>2.5</version> 
    <configuration> 
     <charset>UTF-8</charset> 
     <docencoding>UTF-8</docencoding> 
     <docfilessubdirs>true</docfilessubdirs> 
     <links> 
      <link>http://java.sun.com/j2se/1.5.0/docs/api/</link> 
     </links> 
     <show>protected</show> 
     <source>1.5</source> 
     <sourcepath>${basedir}/src/main/java/com/acme/foo</sourcepath> 
    </configuration> 
    <reportSets> 
     <reportSet> 
      <reports> 
       <report>javadoc</report> 
      </reports> 
     </reportSet> 
    </reportSets> 
</plugin> 

इस उदाहरण में, com.acme.foo (सबपैकेज सहित) पैकेज के अंतर्गत सभी वर्गों जावाडोक उत्पन्न होगा।

यह ध्यान दिया जाना चाहिए कि यह मेवेन प्लगइन बस Sun's javadoc utility के आसपास एक रैपर है। इस प्रकार, जावा प्लग के लिए अधिकांश दस्तावेज और कॉन्फ़िगरेशन इस प्लगइन के लिए सच है। जवाडोक sourcepath parameter पर सूर्य के दस्तावेज़ देखें।

एक ऐसे क्षेत्र में जहां मैवेन-जावाडोक-प्लगइन कार्यक्षमता में भिन्न होता है, स्रोतपैथ पैरामीटर के लिए सूर्य के दस्तावेज़ में उल्लेख किया गया है कि यह जावडोक उपयोगिता generate javadoc for specific classes पर संभव है। यह क्षमता maven-javadoc-plugin के साथ उपलब्ध नहीं है। इस का एक उदाहरण सूर्य की दस्तावेज में दिखाया गया है:

C:> cd C:\home\src\java\awt 
    C:> javadoc -d C:\home\html Button.java Canvas.java Graphics*.java 
+0

एक उदाहरण इस उत्तर में जोड़ देगा। – Supertux

+1

उदाहरण आपके अनुरोध के अनुसार जोड़ा गया। उदाहरण लिखने में, मुझे एहसास हुआ कि मेरा मूल जवाब सही नहीं था। मैंने इसे बाद में संशोधित किया है। के रूप में यह जावाडोक उपयोगिता के द्वारा समर्थित है विशिष्ट वर्गों के लिए जावाडोक की पीढ़ी का समर्थन करने के लिए एक वृद्धि का अनुरोध Maven-जावाडोक-प्लगइन करने के लिए एक बग लॉग इन करने के लिए स्वतंत्र महसूस। http://jira.codehaus.org/browse/MJAVADOC – shek

+0

यह Maven-जावाडोक-प्लगइन कॉन्फ़िगर करने के लिए उपयोग करते हुए केवल विशिष्ट फ़ाइलों को शामिल करने के लिए संभव है [ 'sourceFileIncludes'] (https://maven.apache.org/ plugins/maven-javadoc-plugin/javadoc-mojo.html # स्रोत फ़ाइल शामिल है) तत्व। –

7

यह बस है, तो आप Maven2-प्लगइन, जैसे से विन्यास टैग <subpackages/> उपयोग करते हैं:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <version>2.7</version> 
    <configuration> 
     <sourceEncoding>ISO-8859-1</sourceEncoding> 
     <quiet>true</quiet> 
     <aggregate>true</aggregate> 
     <code>javadoc:aggregate</code> 
     <code>javadoc:test-aggregate</code>   
     <doclet>gr.spinellis.umlgraph.doclet.UmlGraphDoc</doclet> 
     <docletArtifact> 
      <groupId>gr.spinellis</groupId> 
      <artifactId>UmlGraph</artifactId> 
      <version>4.6</version> 
     </docletArtifact> 
     <additionalparam> 
      -inferrel -inferdep -quiet -hide java.* 
      -collpackages java.util.* -qualify 
      -postfixpackage -nodefontsize 9 
      -nodefontpackagesize 7       
     </additionalparam> 

     <subpackages> 
      de.interforum.gms.db.domain:de.interforum.sdr.db.domain 
     </subpackages> 

    </configuration> 
    <executions> 
     <execution> 
     <goals> 
      <goal>javadoc</goal> 
      <goal>test-javadoc</goal> 
     </goals> 
     <phase>site</phase> 
     <configuration> 
      <!-- Specific configuration for the given reports ... --> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

Maven2 कमांड है: 'mvn -cpu -up -am -pl subProject clean javadoc: कुल' – udoline

+0

अधिक जानकारी के लिए, यहां देखें http://jira.codehaus.org/browse/MJAVADOC-82 – udoline

15

Maven-जावाडोक-प्लगइन संस्करण 2.9, आप अपने विन्यास में यह कर सकते हैं के बाद से:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <version>2.9</version> 
    <configuration> 
    .... 
    <sourceFileIncludes> 
     <include>Foo.java</include> 
     <include>Bar.java</include> 
    </sourceFileIncludes> 
    <sourcepath>${basedir}/src/main/java/path/to/foo-and-bar</sourcepath> 
    .... 
    </configuration> 
    .... 

... जो केवल उल्लेख किया कक्षाओं सहित एक जावाडोक साइट का निर्माण होगा।

+0

हालांकि इसे जोड़ने के लिए धन्यवाद इसका उत्तर दिया गया था। अगर इस अनुवर्ती उत्तर के लिए नहीं तो शायद यह नहीं मिला होगा। –

+0

संबंधित: http://stackoverflow.com/questions/14518220/maven-how-do-i-exclude- विशिष्ट- स्रोत- फाइल-from-javadoc – Vince

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

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