2011-12-27 6 views
5

मैं रनटाइम पर एक विशिष्ट एनोटेशन के साथ सभी विधियों के लिए सभी जावाडोक लाने का एक तरीका ढूंढ रहा हूं। मैं कस्टम किए गए यूआई में इन तरीकों के बारे में विवरण प्रदर्शित करने के लिए इस जावाडोक का उपयोग करने जा रहा हूं।विधि नाम और पैकेज/कक्षा नाम के साथ, मैं एक विशिष्ट एनोटेशन के साथ सभी विधियों का जावडोक कैसे प्राप्त कर सकता हूं?

इन तरीकों का बाद में परीक्षण के लिए उपयोग किया जाता है, उन्हें उपयोगकर्ता द्वारा निर्धारित अज्ञात क्रम में बुलाया जाएगा - मैं उपयोगकर्ताओं को स्रोत ब्राउज़ किए बिना जावाडॉक को देखने देना चाहता हूं।

हां, मेरे पास स्रोत हैं और लक्ष्य प्राप्त करने के लिए उनका उपयोग कर सकते हैं।

ऐसा करने के बारे में मैंने सोचा सबसे अच्छा तरीका विवरण के साथ एक अलग फ़ाइल बनाए रखता है, जिसे रनटाइम पर पढ़ा जाएगा, लेकिन इसका मतलब है कि मुझे जवाडोक और बाहरी फाइल दोनों को बनाए रखना है, और मुझे इस विचार को पसंद नहीं है सुंदर समान पाठ की दो प्रतियों को बनाए रखना।

किसी भी उत्तर के लिए चीयर्स! धन्यवाद।

+0

हल हो गया। एचटीएमएल फाइलें उत्पन्न करने के लिए जावाडोक का उपयोग करके, वे रनटाइम पर पढ़े जाते हैं और उपयोगकर्ता को प्रदर्शित होते हैं। सभी सहायकों के लिए धन्यवाद! – eitama

उत्तर

2

Lucene के साथ काम करने के लिए इस रूप में सरल नहीं है के रूप में यह लग रहा है क्योंकि JavaDoc वर्ग फ़ाइल का हिस्सा नहीं है है (वहाँ java.lang.reflect.Method पर कोई getJavaDoc() विधि है)।

मैं इस तरह की समस्या पर हमला चाहते हैं:

  1. डाउनलोड ग्रहण जेडीटी। इसमें एक्लिप्स जावा कंपाइलर है (org.eclipse.jdt.core_*.jar को अपने क्लासपाथ में जोड़ें। "Using the batch compiler" मदद भी कर सकता है)।
  2. यहां देखें how to get an AST from Java sources using the Eclipse compiler
  3. एएसटी में स्रोत कोड होता है: आप एनोटेशन, पैरामीटर नाम, सबकुछ देखते हैं। जावाडॉक एकत्र करने के लिए, AstVisitor
  4. एक या अधिक XML दस्तावेज़ों (बनाने में आसान और पार्स) में जो कुछ भी आपको चाहिए, उसे निकालें जो आपका यूआई पढ़ता है।
  5. प्रक्रिया को स्वचालित करने और इसे अपने निर्माण में जोड़ने के लिए एक चींटी कार्य बनाएं।
+0

मैं एक आसान समाधान की उम्मीद कर रहा था, लेकिन आप समाधान ने मुझे थोड़ा अलग करने के लिए प्रेरित किया। – eitama

0

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

मुझे संदेह है कि आप सीधे पढ़ने के लिए JavaDocs का उपयोग कर स्वीकार्य प्रदर्शन प्राप्त कर पाएंगे। की जाँच कितना आसान है यहाँ http://www.lucenetutorial.com/lucene-in-5-minutes.html

0

यह संभव है लेकिन कुछ प्रयासों की आवश्यकता है।

आम तौर पर जेवाडोक बनाना उपयोगिता javadoc चलाकर प्राप्त किया जाता है जो सीएलआई तक पहुंच गया है। आप एनोटेशन प्रोसेसर एपीआई का उपयोग कर संकलन समय पर इसे अपने संकलित संसाधनों के साथ एक साथ स्टोर कर सकते हैं। फिर आप इसे रनटाइम पर पढ़ सकते हैं।

एनोटेशन प्रीप्रोसेसर उपयोग के एक सुंदर उदाहरण के रूप में this project पर एक नज़र डालें।