2015-10-09 8 views
7

मैं एक बड़े-आश जावा प्रोजेक्ट पर काम करता हूं। हम अपने निर्माण उपकरण के रूप में मेवेन का उपयोग कर रहे हैं, और मैं इंटेलिज (14) का उपयोग अपने आईडीई के रूप में करता हूं।बिल्ड (संकलन/परीक्षण) समय की निगरानी और रिकॉर्ड कैसे करें?

वर्तमान में, अगर मैं पूरी परियोजना (सी। 15 मॉड्यूल) का निर्माण करता हूं तो इसमें लगभग 3 मिनट लगते हैं। जिस तरह से हम अपने कोड (यहां तक ​​कि विकास में) का उपयोग करते हैं, मैं अक्सर एक पूर्ण निर्माण कर रहा हूं। इस आधार पर कि "जो मापा जाता है वह प्रबंधित हो जाता है", मैं निगरानी/रिकॉर्ड करने में सक्षम होना चाहता हूं:

  1. कितनी बार एक घंटा/दिन का निर्माण चलाया गया है?
  2. बिल्ड चलाने में कितना समय व्यतीत किया गया है?
  3. यदि यह संभव थे, इस Maven कार्य से तोड़ने के लिए - यानी साफ/संकलन/परीक्षण/अन्य प्लग-इन आदि

एक दृष्टिकोण Maven उत्पादन फ़ाइलों को फेंक दिया है करने के लिए, और फिर एक है हो सकता है इन्हें पढ़ने के लिए प्रक्रिया/उन आंकड़ों की गणना करें जिन्हें मैं चाहता हूं। मुझे इस बात से कैसे संपर्क करना चाहिए?

बस स्पष्ट होने के लिए, मैं अपने निर्माण-चक्र रनटाइम को कम करने के तरीके पर टिप्पणियों/सलाह नहीं मांग रहा हूं। हमने पहले से ही इस पर काफी काम किया है, और इस पर काम करना जारी रख रहा है - वास्तव में, मैं वास्तव में इस पर हमारी प्रभावी प्रगति की निगरानी करने के लिए एक रास्ता तलाश रहा हूं।

+3

यदि आप एक स्रोत नियंत्रण प्रणाली का उपयोग कर एक टीम में हैं, तो अपने निर्माण चक्रों को स्वचालित करने और [जेनकींस] (https://jenkins-ci.org/) जैसे कुछ का उपयोग करने के बारे में सोचा .. आपके पास सुंदर साफ है बिल्ड-टाइम, त्रुटि-ट्रैकिंग और क्या नहीं के बारे में अवलोकन? –

+0

@ निश्चित रूप से - धन्यवाद - यह समय-समय पर बिल्ड-टाइम की निगरानी करने के लिए एक सहायक सुझाव है, और उम्मीद है कि एक सतत वातावरण में। हालांकि, यह ध्यान में नहीं आता है कि मैं अपने दैनिक विकास कार्यों में कितनी बार परियोजना (या उप-मॉड्यूल) का निर्माण कर रहा हूं। मैं वास्तव में (निष्पक्ष रूप से) कह सकता हूं कि मैंने x मिनट (या घंटे!) खर्च किया है जो हर दिन बनाता है। (यह निर्माण समय को कम करने में समय बिताने के लिए बहस के लिए गोला बारूद प्रदान करेगा ...) – amaidment

+1

विंडोज़ में, [प्रदर्शन मॉनिटर] (https://technet.microsoft.com/en-us/magazine/2008.08.pulse.aspx#id0120047) आंकड़ों को इकट्ठा करने में सक्षम होना चाहिए कि कितनी देर तक प्रक्रियाएं चल रही हैं। क्या आप अपने निर्माण/संकलन/परीक्षण निष्पादन योग्य के लिए कुछ परफोन काउंटर सेट अप कर सकते हैं? –

उत्तर

1

This मेवेन प्रोफाइल प्रोजेक्ट आपकी मदद कर सकता है।

सीधे शब्दों में (नकल) अपने $ पर इसके latest संस्करण जार {M2_HOME}/lib/ext स्थापित करने और फिर

mvn clean install -Dmaven.profile 

निम्नलिखित आप निम्न नमूना उत्पादन प्रदान करेंगे के रूप में निर्माण को क्रियान्वित करने

com.sample:test:0.0.1-SNAPSHOT 

    clean 175ms 
    org.apache.maven.plugins:maven-clean-plugin:2.5 (default-clean) 175ms 

    process-resources 336ms 
    org.apache.maven.plugins:maven-resources-plugin:2.6 (default-resources) 335ms 

    compile 1s 2ms 
    org.apache.maven.plugins:maven-compiler-plugin:2.5.1 (default-compile) 1s 2ms 

    process-test-resources 9ms 
    org.apache.maven.plugins:maven-resources-plugin:2.6 (default-testResources) 9ms 

    test-compile 59ms 
    org.apache.maven.plugins:maven-compiler-plugin:2.5.1 (default-testCompile) 59ms 

    test 1s 83ms 
    org.apache.maven.plugins:maven-surefire-plugin:2.12.4 (default-test) 1s 83ms 

    package 352ms 
    org.apache.maven.plugins:maven-jar-plugin:2.4 (default-jar) 352ms 

हालांकि क्रॉस-बिल्ड आंकड़े प्राप्त करने के लिए आपको डेटा संचय के लिए एक और परत (स्क्रिप्ट?) की आवश्यकता होगी। हालांकि, यह पहले से ही आपके तीसरे प्रश्न का उत्तर देता है और यह शायद एक अच्छी शुरुआत है।

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