2012-01-05 20 views
5

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

जेनकींस नौकरी से उत्पादन कुछ इस तरह है:

[exec] 
[exec] Scanning org.digitalcure.ccnf.app: ..........Incorrect detector reported disabled issue TooManyViews 
[exec] Incorrect detector reported disabled issue TooManyViews 
[exec] ... 
[exec] 
[exec] Scanning org.digitalcure.android.common: ... 
[exec] res/values/strings.xml: Warning: The resource R.string.display_unit_abc appears to be unused [UnusedResources] 
[exec] res/values/strings.xml: Warning: The resource R.string.edit_error_abc appears to be unused [UnusedResources] 
[exec] Warning: Missing density variation folders in res: drawable-xhdpi [IconMissingDensityFolder] 
[exec] 
[exec] 0 errors, 3 warnings 

Android Lint भी एक एक्सएमएल फ़ाइल बना सकते हैं, लेकिन मुझे डर है कोई जेनकींस प्लगइन फ़ाइल को पार्स करने में सक्षम है कि वहाँ हूँ। या क्या मैं कुछ न कुछ भूल रहा हूं?

+2

हाँ, यह कठिन है क्योंकि लिंट एक्सएमएल प्रारूप अन्य समान जावा टूल्स के साथ संगत नहीं है। मैं लिंट परिणामों का विश्लेषण करने के लिए जेनकींस प्लगइन पर काम कर रहा हूं। –

+0

जेनकिन्स के लिए एंड्रॉइड लिंट प्लग-इन क्रिस्टोफर बहुत उपयोगी होगा। वैसे भी, पावल की सहायता से मैंने अपना मुद्दा हल किया। परीक्षण के लिए प्लग-इन उपलब्ध होने पर कृपया एक टिप्पणी पोस्ट करें। धन्यवाद! – stefan222

उत्तर

3

पावोल, आप अपने प्रेरणा के लिए बहुत बहुत धन्यवाद! दुर्भाग्यवश आपकी regexp/स्क्रिप्ट मेरे लिए काम नहीं करती है, लेकिन आगे की जांच के लिए यह एक बहुत अच्छा प्रारंभिक बिंदु था। यहाँ क्या मेरी विन्यास के लिए काम करता है:

नाम: Android Lint Parser

Regexp: ([^\s]*:)?([^ ]*):\s+(.*)\[(.*)\]$

ग्रूवी स्क्रिप्ट:

import hudson.plugins.warnings.parser.Warning; 
import hudson.plugins.analysis.util.model.Priority; 

String fileName = matcher.group(1); 
String lineNumber = ""; 
String priority = matcher.group(2); 
String message = matcher.group(3); 
String category = matcher.group(4); 

if (fileName == null) { 
    fileName = "(no file)"; 
} else { 
    int idx = fileName.indexOf(':'); 
    if (idx > -1) { 
    lineNumber = fileName.substring(idx + 1, fileName.size()); 
    fileName = fileName.substring(0, idx); 

    int idx2 = lineNumber.indexOf(':'); 
    if (idx2 > -1) { 
     lineNumber = lineNumber.substring(0, idx2); 
    } 

    idx2 = lineNumber.indexOf(' '); 
    if (idx2 > -1) { 
     lineNumber = lineNumber.substring(0, idx2); 
    } 
    } 
} 

return new Warning(fileName, lineNumber.size() > 0 ? Integer.parseInt(lineNumber) : 0, "Android Lint Parser", category, message, priority.equals("Error") ? Priority.HIGH : Priority.NORMAL); 
0

कुछ संस्करणों से चेतावनी प्लगइन संकलित करने में आप regexp और groovy स्क्रिप्ट का उपयोग कर जेनकिंस की कॉन्फ़िगरेशन साइट से पार्सर बना सकते हैं। मैंने कुछ फाइलों के आउटपुट के साथ शेल स्क्रिप्ट के रूप में चलाने वाले लिंट के लिए एक बनाया है।

Regexp: ^\s*([^ ]*): ([^ ]*):\s*(.*)\[(.*)\]$

ग्रूवी स्क्रिप्ट:

import hudson.plugins.warnings.parser.Warning; 
import hudson.plugins.analysis.util.model.Priority; 

String fileName = matcher.group(1) 
String lineNumber = ""; //matcher.group(1) 
String priority = matcher.group(2) 
String message = matcher.group(3) 
String category = matcher.group(4) 
int idx = fileName.indexOf(':'); 
if (idx > -1) { 
    lineNumber = fileName.substring(idx+1,fileName.size()); 
    fileName = fileName.substring(0,idx); 
} 

return new Warning(fileName, lineNumber.size() > 0 ? Integer.parseInt(lineNumber) : 0, "Android Lint Parser", category, message, priority.equals("Error") ? Priority.HIGH : Priority.NORMAL); 
7

जेनकींस अब, Android Lint Plugin है आप एसडीके उपकरण R17 उपयोग कर रहे हैं या नया।

यह लिंट एक्सएमएल का विश्लेषण करेगा और जेनकींस के लिए अन्य स्थिर विश्लेषण प्लगइन के समान परिणाम में परिणाम प्रदर्शित करेगा।

+1

मैं इस प्लगइन का उपयोग करता हूं, काम के लिए बिल्कुल सही है। धन्यवाद। –

+0

मैंने इस प्लगइन का भी उपयोग करने की कोशिश की लेकिन यह लिंट के परिणाम नहीं उठाता है (देखें http://stackoverflow.com/questions/12716150/jenkins-lint-plugin-not-picking-up-results) - क्या कोई सुझाव है गलत हो सकता है? –

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