2015-05-23 12 views
8
पर

जब मैं lengthy configuration साथ Windows 8.1 पर Cobertura-Maven-प्लग इन चलाना (परियोजना में किसी भी कवरेज ड्रॉप प्रतिबंधित करने के लिए प्रयोग किया जाता) cobertura:check लक्ष्य त्रुटि के साथ विफल "कमांड लाइन बहुत लंबी है" The command line is too long.Cobertura Maven प्लगइन में विफल रहता है के साथ विंडोज

समस्या शायद Command prompt (Cmd. exe) command-line string limitation से जुड़ा हुआ है, क्योंकि यह गायब हो जाता है जब मैं कोबर्टुरा को प्रदान की गई कॉन्फ़िगरेशन की मात्रा सीमित करता हूं। इसके अलावा, यह लिनक्स पर ठीक काम करता है।

मैं इस समस्या को कैसे दूर कर सकता हूं? डिबग स्तर पर

लॉग्स:

[DEBUG] Executing command line: 
[DEBUG] cmd.exe /X /C ""C:\Program Files\Java\jdk1.8.0_25\jre\bin\java" net.sourceforge.cobertura.check.CheckCoverageMain --datafile C:\IdeaProjects\checkstyle\target\cobertura\cobertura.ser --branch 100 --line 100 --totalbranch 82 --totalline 90 --regex .*.checks.UncommentedMainCheck:88:83 --regex .*.checks.indentation.MethodCallLineWrapHandler:0:0 --regex .*.checks.indentation.ImportHandler:87:50 --regex .*.checks.imports.Guard:100:86 --regex .*.checks.sizes.AnonInnerLengthCheck:92:100 --regex .*.checks.DeclarationCollector:100:94 --regex .*.checks.whitespace.ParenPadCheck:95:86 --regex .*.TreeWalker:91:92 --regex .*.checks.naming.AbstractTypeParameterNameCheck:83:75 --regex .*.checks.naming.LocalVariableNameCheck:100:94 --regex .*.api.SeverityLevelCounter:76:50 --regex .*.checks.indentation.ForHandler:95:75 --regex .*.checks.regexp.RegexpMultilineCheck:76:100 --regex com.puppycrawl.tools.checkstyle.Utils:93:85 --regex .*.checks.coding.VariableDeclarationUsageDistanceCheck:97:90 --regex .*.checks.imports.ImportControlLoader:88:72 --regex .*.api.LocalizedMessage:81:66 --regex .*.api.FileContents:94:96 --regex .*.api.AbstractViolationReporter:90:100 --regex .*.checks.imports.CustomImportOrderCheck:91:93 --regex .*.checks.javadoc.AbstractJavadocCheck:93:90 --regex .*.checks.naming.ConstantNameCheck:92:88 --regex .*.checks.javadoc.HtmlTag:90:75 --regex .*.api.ScopeUtils:0:0 --regex .*.checks.modifier.RedundantModifierCheck:96:97 --regex .*.DefaultLogger:76:75 --regex .*.checks.metrics.BooleanExpressionComplexityCheck:80:74 --regex .*.checks.design.OneTopLevelClassCheck:95:77 --regex .*.checks.coding.DefaultComesLastCheck:90:87 --regex .*.checks.sizes.ExecutableStatementCountCheck:95:81 --regex .*.checks.UpperEllCheck:83:100 --regex .*.checks.regexp.CommentSuppressor:100:75 --regex .*.checks.naming.AbstractClassNameCheck:90:100 --regex .*.checks.javadoc.WriteTagCheck:91:100 --regex .*.checks.CheckUtils:97:91 --regex .*.checks.DescendantTokenCheck:96:91 --regex .*.checks.coding.UnnecessaryParenthesesCheck:96:91 --regex .*.checks.blocks.RightCurlyCheck:95:88 --regex .*.checks.coding.IllegalTypeCheck:93:93 --regex .*.checks.TodoCommentCheck:92:100 --regex .*.checks.coding.MultipleVariableDeclarationsCheck:96:96 --regex .*.checks.ClassResolver:93:86 --regex .*.checks.coding.DeclarationOrderCheck:90:82 --regex .*.checks.blocks.LeftCurlyCheck:94:87 --regex .*.checks.coding.AbstractIllegalMethodCheck:92:100 --regex .*.checks.whitespace.EmptyForInitializerPadCheck:93:91 --regex .*.checks.whitespace.WhitespaceAroundCheck:98:96 --regex .*.checks.coding.ParameterAssignmentCheck:91:80 --regex .*.checks.whitespace.NoWhitespaceBeforeCheck:100:90 --regex .*.PropertiesExpander:83:50 --regex .*.checks.indentation.BlockParentHandler:98:86 --regex .*.checks.metrics.AbstractClassCouplingCheck\$.*:100:78 --regex .*.checks.coding.IllegalInstantiationCheck:94:77 --regex .*.checks.coding.SimplifyBooleanExpressionCheck:77:100 --regex .*.checks.RegexpCheck:100:97 --regex .*.checks.coding.ReturnCountCheck:74:55 --regex .*.api.JavadocTagInfo:77:25 --regex .*.checks.coding.AvoidInlineConditionalsCheck:66:100 --regex .*.checks.coding.FinalLocalVariableCheck:100:79 --regex .*.api.AutomaticBean:82:90 --regex .*.checks.coding.InnerAssignmentCheck:97:88 --regex .*.checks.whitespace.EmptyForIteratorPadCheck:92:100 --regex .*.checks.coding.RequireThisCheck:89:100 --regex .*.checks.imports.AvoidStaticImportCheck:95:85 --regex .*.checks.whitespace.TypecastParenPadCheck:88:87 --regex .*.checks.naming.AbstractAccessControlNameCheck:80:95 --regex .*.checks.ArrayTypeStyleCheck:94:100 --regex .*.checks.TranslationCheck:83:81 --regex .*.checks.javadoc.JavadocTypeCheck:91:95 --regex .*.checks.AbstractOptionCheck:80:100 --regex .*.checks.coding.EqualsHashCodeCheck:96:75 --regex .*.checks.naming.MemberNameCheck:85:91 --regex .*.checks.javadoc.JavadocTagContinuationIndentationCheck:86:81 --regex .*.checks.whitespace.EmptyLineSeparatorCheck:98:95 --regex .*.checks.metrics.NPathComplexityCheck:96:100 --regex .*.checks.header.RegexpHeaderCheck:93:87 --regex .*.checks.AvoidEscapedUnicodeCharactersCheck:98:97 --regex .*.checks.javadoc.JavadocMethodCheck:96:90 --regex .*.checks.coding.ModifiedControlVariableCheck:93:83 --regex .*.checks.whitespace.MethodParamPadCheck:95:100 --regex .*.checks.annotation.MissingDeprecatedCheck:96:92 --regex .*.checks.indentation.NewHandler:77:83 --regex .*.checks.javadoc.JavadocUtils:91:83 --regex .*.checks.naming.MethodNameCheck:93:100 --regex .*.checks.indentation.ElseHandler:100:75 --regex .*.checks.naming.AbstractNameCheck:87:100 --regex .*.checks.naming.ParameterNameCheck:80:75 --regex .*.checks.coding.HiddenFieldCheck:97:96 --regex .*.checks.imports.RedundantImportCheck:94:81 --regex .*.api.LocalizedMessage\$.*:66:41 --regex .*.filters.SuppressionCommentFilter:87:83 --regex .*.checks.indentation.IndexHandler:75:100 --regex .*.checks.javadoc.AtclauseOrderCheck:88:88 --regex .*.checks.imports.PkgControl:100:80 --regex .*.PropertyCacheFile:19:22 --regex .*.checks.indentation.MethodCallHandler:87:63 --regex .*.checks.coding.StringLiteralEqualityCheck:87:100 --regex .*.checks.metrics.JavaNCSSCheck:96:81 --regex .*.checks.javadoc.SummaryJavadocCheck:100:93 --regex .*.checks.coding.AbstractIllegalCheck:100:64 --regex .*.checks.whitespace.GenericWhitespaceCheck:96:86 --regex .*.checks.coding.HiddenFieldCheck\$.*:100:94 --regex .*.api.TokenTypes:80:62 --regex .*.PackageObjectFactory:75:75 --regex .*.checks.naming.PackageNameCheck:88:100 --regex .*.checkstyle.AnnotationUtility:60:60 --regex .*.checks.whitespace.OperatorWrapCheck:81:68 --regex .*.api.AuditEvent:93:100 --regex .*.checks.indentation.LineSet:90:100 --regex .*.checks.AbstractTypeAwareCheck\$.*:80:50 --regex .*.api.Check:86:100 --regex .*.checks.naming.StaticVariableNameCheck:87:81 --regex .*.checks.indentation.ExpressionHandler:97:91 --regex .*.checks.regexp.MultilineDetector:87:58 --regex .*.checks.regexp.DetectorOptions:96:100 --regex .*.checks.coding.FallThroughCheck:95:90 --regex .*.checks.OuterTypeFilenameCheck:92:71 --regex .*.checks.AbstractTypeAwareCheck:84:87 --regex .*.api.AbstractFileSetCheck:87:75 --regex .*.checks.indentation.SlistHandler:94:100 --regex .*.checks.whitespace.AbstractParenPadCheck:100:88 --regex .*.checks.sizes.MethodCountCheck:23:31 --regex .*.api.JavadocTagInfo\$.*:8:0 --regex .*.checks.TrailingCommentCheck:93:90 --regex .*.checks.coding.MissingSwitchDefaultCheck:87:100 --regex .*.checks.coding.IllegalTokenCheck:100:75 --regex .*.checks.indentation.PrimordialHandler:60:100 --regex .*.checks.coding.MissingCtorCheck:92:75 --regex .*.checks.indentation.HandlerFactory:81:77 --regex .*.checks.annotation.MissingOverrideCheck:96:100 --regex .*.checks.indentation.PackageDefHandler:85:50 --regex .*.checks.UniquePropertiesCheck\$.*:90:75 --regex .*.api.FullIdent:96:83 --regex .*.checks.annotation.PackageAnnotationCheck:77:50 --regex .*.checks.blocks.EmptyBlockCheck:100:88 --regex .*.checks.metrics.AbstractClassCouplingCheck:97:87 --regex .*.checks.coding.SimplifyBooleanReturnCheck:96:83 --regex .*.checks.metrics.ClassFanOutComplexityCheck:80:100 --regex .*.checks.coding.NestedTryDepthCheck:81:50 --regex .*.checks.coding.IllegalCatchCheck:92:100 --regex .*.checks.coding.PackageDeclarationCheck:63:50 --regex .*.checks.SuppressWarningsHolder:90:70 --regex .*.checks.indentation.IndentationCheck:93:100 --regex .*.filters.SuppressionFilter:0:0 --regex .*.api.JavadocTokenTypes:0:100 --regex .*.checks.NewlineAtEndOfFileCheck:88:83 --regex .*.checks.imports.AvoidStarImportCheck:88:90 --regex .*.checks.indentation.ObjectBlockHandler:100:75 --regex .*.filters.SuppressionsLoader:77:68 --regex .*.checks.annotation.AnnotationUseStyleCheck:96:93 --regex .*.checks.design.InterfaceIsTypeCheck:85:100 --regex .*.checks.coding.IllegalThrowsCheck:84:93 --regex .*.checks.regexp.SinglelineDetector:96:93 --regex .*.checks.indentation.SynchronizedHandler:100:100 --regex .*.checks.coding.AbstractNestedDepthCheck:86:100 --regex .*.XMLLogger:97:86 --regex .*.checks.design.VisibilityModifierCheck:95:95 --regex .*.api.AbstractLoader:88:75 --regex .*.api.Comment:95:100 --regex .*.checks.coding.OverloadMethodsDeclarationOrderCheck:96:93 --regex .*.checks.sizes.ParameterNumberCheck:93:100 --regex .*.checks.javadoc.JavadocStyleCheck:97:89 --regex .*.Main:78:65 --regex .*.checks.coding.MultipleStringLiteralsCheck:94:90 --regex .*.checks.javadoc.TagParser:98:92 --regex .*.ConfigurationLoader\$.*:84:65 --regex .*.checks.blocks.EmptyCatchBlockCheck:98:96 --regex .*.checks.coding.EqualsAvoidNullCheck:96:78 --regex .*.checks.javadoc.JavadocPackageCheck:95:80 --regex .*.checks.coding.IllegalTokenTextCheck:88:60 --regex .*.checks.naming.LocalFinalVariableNameCheck:85:87 --regex .*.checks.whitespace.WhitespaceAfterCheck:90:90 --regex .*.DefaultConfiguration:92:100 --regex .*.checks.imports.UnusedImportsCheck:97:90 --regex .*.filters.SuppressionCommentFilter\$.*:69:41 --regex .*.checks.imports.ImportOrderCheck:99:91 --regex .*.api.FileText:59:50 --regex .*.checks.blocks.NeedBracesCheck:97:80 --regex .*.checks.annotation.SuppressWarningsCheck:96:79 --regex .*.checks.imports.ImportControlCheck:70:85 --regex .*.checks.regexp.RegexpSinglelineCheck:76:100 --regex .*.checks.modifier.ModifierOrderCheck:91:92 --regex .*.checks.metrics.AbstractComplexityCheck:92:83 --regex .*.filters.SuppressElement:88:82 --regex .*.filters.SuppressWithNearbyCommentFilter:89:76 --regex .*.checks.indentation.LineWrappingHandler:91:87 --regex .*.checks.javadoc.AbstractJavadocCheck\$.*:68:50 --regex .*.checks.coding.AbstractSuperCheck:88:78 --regex .*.api.AutomaticBean\$.*:90:75 --regex .*.checks.blocks.AvoidNestedBlocksCheck:90:100 --regex .*.checks.coding.NestedIfDepthCheck:83:75 --regex .*.checks.javadoc.JavadocNodeImpl:84:50 --regex .*.Checker:84:79 --regex .*.checks.coding.CovariantEqualsCheck:90:95 --regex .*.ConfigurationLoader:79:86 --regex .*.checks.metrics.CyclomaticComplexityCheck:80:85 --regex .*.checks.javadoc.JavadocParagraphCheck:100:92 --regex .*.checks.sizes.MethodLengthCheck:95:100 --regex .*.checks.sizes.OuterTypeNumberCheck:94:75 --regex .*.checks.coding.OneStatementPerLineCheck:96:93 --regex .*.filters.SuppressWithNearbyCommentFilter\$Tag:78:88 --regex .*.Definitions:0:100 --regex .*.api.AnnotationUtility:0:0 --regex .*.checks.indentation.ArrayInitHandler:97:83 --regex .*.checks.imports.IllegalImportCheck:94:100 --regex .*.checkstyle.ScopeUtils:94:90 --regex .*.checks.coding.ArrayTrailingCommaCheck:90:100 --regex .*.checks.coding.EmptyStatementCheck:80:100 --regex .*.checks.sizes.LineLengthCheck:89:100 --regex .*.checks.javadoc.JavadocTag:85:92 --regex .*.checks.whitespace.NoWhitespaceAfterCheck:98:94 --regex .*.PackageNamesLoader:72:78 --regex .*.checks.naming.AbbreviationAsWordInNameCheck:100:93 --regex .*.checks.indentation.MethodDefHandler:100:87 --regex .*.checks.coding.NestedForDepthCheck:90:50 --regex .*.checks.javadoc.JavadocVariableCheck:90:93 --regex .*.filters.IntMatchFilter:90:100 --regex .*.api.DetailAST:98:95 --regex .*.checks.annotation.AnnotationLocationCheck:78:75 --regex .*.checks.coding.ExplicitInitializationCheck:90:90 --regex .*.checks.header.HeaderCheck:45:18 --regex .*.checks.whitespace.SeparatorWrapCheck:93:100 --regex .*.checks.header.AbstractHeaderCheck:85:85 --regex .*.checks.design.InnerTypeLastCheck:93:100" 
[DEBUG] exit code: 1 
[DEBUG] -------------------- 
[DEBUG] Standard error from the Cobertura task: 
[DEBUG] -------------------- 
[ERROR] The command line is too long. 
+0

कॉन्फ़िगरेशन की संख्या को कम करने का एकमात्र मौका है, क्योंकि खिड़कियों की इसकी सीमाएं हैं। इसके अलावा यह एक जटिल जटिल कॉन्फ़िगरेशन की तरह दिखता है जिसमें मुझे संदेह है कि यह समझ में आता है ... लेकिन इसके अलावा [maven-checkstyle-plugin] का उपयोग क्यों नहीं करते (https://maven.apache.org/plugins/maven -चेकस्टाइल-प्लगइन /)? – khmarbaise

+0

एक चीज जिसे मैंने याद किया है क्यों जैकोको का उपयोग नहीं किया? – khmarbaise

+0

@khmarbaise - सीमित कॉन्फ़िगरेशन एक विकल्प नहीं है, क्योंकि यह लाइब्रेरी में किसी भी कोड कवरेज ड्रॉप को स्वचालित रूप से प्रतिबंधित करता है, इसकी प्रकृति से 100% में कवर किया जाना चाहिए। क्या आप जानते हैं कि मैं जैकोको में एक ही लक्ष्य कैसे प्राप्त कर सकता हूं? –

उत्तर

2

एक समाधान मैं सुझाव दे सकता हूं कि साइगविन स्थापित करें और वहां कमांड चलाएं। आप किसी भी इंटरनेट पर साइगविन के माध्यम से कैसे चल सकते हैं। Try This Tutorial

इसके अलावा बजाय बुला CheckCoverageMain सीधे जावा का उपयोग कर आप एक चींटी स्क्रिप्ट है, जो CheckCoverageMain फोन और नीचे की तरह अपने से तर्क पारित करेंगे लिख सकते हैं,

<java classname="net.sourceforge.cobertura.check.CheckCoverageMain" fork="true"> 

    <jvmarg value="--regex"/> 

और फिर कमांड लाइन से चींटी स्क्रिप्ट कहते हैं। Ant script basic tutorial

1

यह समस्या तब होती है अपने classpath बहुत लंबा हो जाता है। वहाँ बहुत विकल्प हैं:

  1. डी जैसे कुछ छोटे पथ के लिए अपने भंडार ले जाएँ:, वर्तमान में यह सी जैसे कुछ लंबे समय तक पथ पर हो सकता है: \ दस्तावेज़ और सेटिंग्स \ XYZ.m2 ... आदि
    1. कॉन्फ़िगरेशन में सही करने के लिए WildcardClassPath का उपयोग करें।

मैं दूसरा दृष्टिकोण पहले की कोशिश करने की सिफारिश करेंगे।

मुझे पता है कि वह आपके लिए काम करता है ...

+0

उनकी कमांड लाइन 11K वर्णों से अधिक लंबी है, जिनमें से अधिकांश --रेगेक्स तर्क - कक्षा के साथ कुछ भी नहीं करना है। – vempo

2

यह तो मैं एक जवाब के रूप में पोस्ट चाहते हैं एक बहुत ही सरल समाधान नहीं है,।

आप अपने विंडोज 8.1 पीसी पर लिनक्स वीएम में अपना मैवेन बिल्ड कर सकते हैं। उस उद्देश्य के लिए केवल हल्के कमांड-लाइन-केवल वीएम सेट करें, और अपनी विंडोज निर्देशिकाओं को इसके साथ साझा करें ताकि आपको कुछ भी कॉपी न करना पड़े। इसका उपयोग कमांड लाइन विंडो खोलने और एमवीएन चलाने से बहुत अलग नहीं होगा। वीएमवेयर प्लेयर या वर्चुअलबॉक्स मुफ्त के साथ-साथ लिनक्स वीएम छवियों के टन भी हैं।

फिर कॉन्बर्टुरा के लिए कॉन्फ़िगरेशन फ़ाइल को तर्क के रूप में पास करने की अनुमति देने के लिए एक सुविधा अनुरोध खोलें। Net.sourceforge.cobertura.check.CheckCoverageMain के स्रोत कोड को देखते हुए, ऐसी सुविधा जोड़ना आसान होना चाहिए।

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