2011-03-14 10 views
7

क्या जावा प्रोजेक्ट में कक्षाओं की सूची जेनरेट करने का कोई तरीका है जिसे अब उस प्रोजेक्ट में किसी अन्य वर्ग द्वारा आवश्यक नहीं है?उस प्रोजेक्ट में कक्षाओं की सूची कैसे प्राप्त करें, जिन्हें उस परियोजना में किसी भी चीज की आवश्यकता नहीं है

  A 
     /\ 
    / \ 
     C  B 

:

यहाँ एक आरेख मदद करने के लिए स्थिति (मैं तुम मेरे ASCII चित्र का आनंद के बाद से मैं एक छवि का उपयोग करने के लिए पर्याप्त प्रतिनिधि नहीं है आशा), जहां सी और बी परियोजना एक पर निर्भर उदाहरण देकर स्पष्ट करना है मैंने बी से ए कोड को ले जाकर रिफैक्टरिंग शुरू कर दी, ताकि इसे सी और बी द्वारा साझा किया जा सके। हालांकि, अब मैं रिफैक्टरिंग खत्म करने के करीब आ रहा हूं, मैं यह देखना चाहता हूं कि क्या कोई कक्षाएं हैं जिन्हें मैं स्थानांतरित कर रहा हूं ए जिसे अब बी में वापस ले जाया जा सकता है (कक्षाएं जो ए में हैं लेकिन ए में किसी भी कोड द्वारा उपयोग नहीं कर रही हैं)

क्या कोई ऐसा टूल है जिसका उपयोग मैं इस तरह की सीएल की सूची उत्पन्न करने के लिए कर सकता हूं मेरे लिए गधे?

+0

+1 आपके एसीआईआई आरेख के लिए +1 :-) –

उत्तर

6

JBoss Tattletale इसके लिए अच्छा काम करता है। मैंने अतीत में इसका उपयोग यह पता लगाने के लिए किया है कि हमारी परियोजना द्वारा तीसरे पक्ष के पुस्तकालयों की अब आवश्यकता नहीं है और कई जेएआर फाइलों में मौजूद संभावित विवादित पैकेज/कक्षाओं के बारे में भी सीखना है।

1

अपने प्रोग्राम को -verbose:class flag के साथ JVM में प्रारंभ करें। आउटपुट को एक फाइल में रीडायरेक्ट करें। अपने कार्यक्रम का प्रयोग करें - अपने परीक्षण या जो कुछ भी चलाएं। Grep लोड हर वर्ग के नाम से बाहर। अपने सभी वर्गों की सूची बनाने के लिए अपनी बिल्ड आउटपुट निर्देशिकाओं पर find चलाएं। परिणामों की तुलना अपनी बिल्ड आउटपुट निर्देशिकाओं में कुछ भी ढूंढने के लिए करें जो लोड की गई कक्षाओं की सूची में नहीं है।

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

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