JDK 11+ और Javadoc


13
Exit code: 1 - javadoc: error - The code being documented uses packages in the unnamed module, but the packages defined in https://docs.oracle.com/en/java/javase/11/docs/api/ are in named modules.

स्रोत संस्करण को 1.8 में बदलकर (अन्य मंचों में सुझाव के बिना) क्या कोई भी जावदोक काम करने में सक्षम है? मैं JDK v11.0.5 और अभी भी मौजूद समस्या (JDK 12+ के साथ) का उपयोग कर रहा हूं।

संपादित करें: यह त्रुटि मावेन से उत्पन्न हुई और मावेन-जेवाडॉक-प्लगइन द्वारा फेंक दी गई। मैं इसे <source>8</source>विन्यास के साथ भी JDK 11+ के लिए काम नहीं कर पाया ।



मुझे लगता है कि इस प्रश्न को कुछ और विवरणों की आवश्यकता है। क्या आप मावेन का उपयोग करते हैं? क्या आप उपयोग करते हैं या आपने अपनी परियोजना में मॉड्यूल का उपयोग करने की कोशिश की है?
rü-

@ रु- आप सही कह रहे हैं, मैंने पोस्ट को अपडेट कर दिया है, धन्यवाद। हां, मैं मल्टी-मॉड्यूल सेटअप के साथ मावेन का उपयोग कर रहा हूं।
राफेल इबासको

जवाबों:


7

जैसा कि OpenJDK इश्यू ट्रैकर में सुझाया गया है, इसे जावदोक प्लगइन पर परिभाषित स्रोत के साथ काम किया जा सकता है:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <configuration>
        <source>8</source>
    </configuration>
</plugin>

3
संभवतः, आपने प्रश्न को पूरी तरह से नहीं पढ़ा है। ओपी ने स्पष्ट रूप से उल्लेख किया है:Has anyone been able to make javadoc work without having to change the source version to 1.8
अरविंद कुमार अविनाश

1
इससे मेरा काम बनता है। मैं उपयोग करता हूं: <कॉन्फ़िगरेशन> <स्रोत> $ {java.version} </ स्रोत> </ कॉन्फ़िगरेशन> और गुणों में यह जावा 11 है। मुझे बस किसी कारण के लिए संस्करण निर्दिष्ट करना था।
भागमा

आप ग्रैडल में यह कैसे कर सकते हैं?
रफी खाचदौरेन

1

javadoc आपके द्वारा उपयोग किए जाने वाले संकुल के लिए लिंक का उत्पादन करता है, जैसे कि प्रलेखित कक्षाओं में .../javase/11/docs/api। हालांकि आपकी टिप्पणियाँ एक अनाम मॉड्यूल में हैं, लक्ष्य नहीं हैं, और javadoc उन दोनों को संयोजित नहीं कर सकता है। यह या तो एक का उत्पादन package-listया एक element-listतो तुम नामित मॉड्यूल के साथ अनाम मॉड्यूल (संकुल) मिश्रण नहीं कर सकते, फ़ाइल।

मुझे उन लिंक को सीमित करने का कोई तरीका नहीं मिला जो कि javadoc उत्पादन करने की कोशिश करता है; इसलिए आपको अपनी परियोजना के लिए मॉड्यूल का उपयोग करना पड़ सकता है। यह मुझे हास्यास्पद लगता है, सिर्फ जावेदोक को खुश करने के लिए। मुझे लगता है कि यह सिर्फ एक कारण है कि इतने सारे लोग जावा 8 से चिपके रहते हैं।


0

Doclet API का उपयोग करने के लिए जावा 9 के बाद से एक महत्वपूर्ण ब्रेकिंग परिवर्तन था

JEP 221: सरलीकृत Doclet API
पुराने Doclet API को एक नए सरलीकृत API के साथ प्रतिस्थापित करता है जो अन्य मानक, मौजूदा API का लाभ उठाता है। नए डॉकलेट एपीआई का उपयोग करने के लिए मानक डॉकलेट को फिर से लिखा गया है

मौजूदा एपीआई और पुराने मानक डॉकलेट उपलब्ध हैं, लेकिन नई भाषा सुविधाओं जैसे मॉड्यूल के लिए अद्यतन नहीं किए गए हैं

पुराना API com.sun.javadoc पैकेज का उपयोग कर रहा है

Doclet API (जिसे Javadoc API भी कहा जाता है) क्लाइंट्स को प्रोग्राम्स और लाइब्रेरीज़ के सोर्स-लेवल स्ट्रक्चर का निरीक्षण करने के लिए एक मैकेनिज्म मुहैया कराता है, जिसमें स्रोत में एम्बेडेड javadoc कमेंट्स भी शामिल हैं।

आप नए Doclet API का उपयोग करके देख सकते हैं , उदाहरण देखें

public class BasicDoclet implements Doclet {
@Override
public void init(Locale locale, Reporter reporter) {  }
@Override
public String getName() {
    // For this doclet, the name of the doclet is just the
    // simple name of the class. The name may be used in
    // messages related to this doclet, such as in command-line
    // help when doclet-specific options are provided.
    return getClass().getSimpleName();
}

4
मैं गलत हो सकता हूं, लेकिन मैं वास्तव में समाधान भाग का पता नहीं लगा सका। पहले से ही पढ़े गए प्रश्न को देखते हुए .. क्या किसी ने स्रोत संस्करण को 1.8 में बदलने के बिना javadoc काम करने में सक्षम किया है ..
नमन

"मौजूदा एपीआई और पुराने मानक डॉकलेट उपलब्ध हैं, लेकिन मॉड्यूल जैसी नई भाषा सुविधाओं का समर्थन करने के लिए अपडेट नहीं किए गए हैं" तो क्या इसका मतलब है कि 9 और उससे ऊपर के संस्करणों के लिए javadoc टूट गया है? इसके अलावा, मेरा मुद्दा मावेन-जेवाडॉक-प्लगइन से इस त्रुटि की रिपोर्टिंग के साथ है। मुझे यकीन नहीं है कि आपके द्वारा ऊपर पोस्ट किया गया कोड कैसे मदद करेगा।
राफेल इबस्को

1
मुझे नहीं लगता कि @RafaelIbasco डॉकलेट्स लिख रहा था। यह उत्तर सहायक नहीं लगता।
rü-
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.