Cobertura Maven Plugin nicht mit „Die Kommandozeile ist zu lang“ unter Windows

8

Wenn ich laufe cobertura-Maven-Plugin unter Windows 8.1 mit langwieriger Konfiguration ( zu verbieten jegliche Deckung Abfall im Projekt) cobertura:check Ziel wird mit Fehler The command line is too long.

verwendet

Das Problem verbunden ist wahrscheinlich href="https://support.microsoft.com/en-us/kb/830473"> Eingabeaufforderung (Cmd. Exe) Befehlszeilen-Zeichenfolge Einschränkung

Wie kann ich dieses Problem überwinden?

Meldet Debug-Level an:

%Vor%     
Michal Kordas 23.05.2015, 18:18
quelle

3 Antworten

2

Eine Lösung, die ich vorschlagen kann, ist Cygwin zu installieren und dort den Befehl auszuführen. Sie können finden, wie man durch Cygwin irgendein Internet läuft. Try This Tutorial

Wenn Sie CheckCoverageMain auch direkt mit Java aufrufen, können Sie ein ant-Skript schreiben, das CheckCoverageMain aufruft und die Argumente wie unten,

, weitergibt %Vor%

Und dann rufen Sie das ant-Skript über die Befehlszeile auf. Ant-Skript-Grundlernprogramm

    
Abhinaba Basu 01.06.2015, 10:35
quelle
2

Dies ist eine sehr einfache Problemumgehung, also poste ich es als Antwort.

Sie könnten Ihren maven build in einer Linux VM auf Ihrem Windows 8.1 PC ausführen. Richten Sie eine einfache Befehlszeilen-VM nur für diesen Zweck ein und teilen Sie Ihre Windows-Verzeichnisse damit, damit Sie nichts kopieren müssen. Es wird nicht viel anders sein, als ein Befehlszeilenfenster zu öffnen und dort mvn zu starten. VMWare Player oder VirtualBox sind kostenlos sowie Tonnen von Linux VM-Images.

Öffnen Sie dann eine Feature-Anforderung für cobertura, um das Übergeben einer Konfigurationsdatei als Argument zu ermöglichen. Betrachtet man den Quellcode von net.sourceforge.cobertura.check.CheckCoverageMain, sollte das Hinzufügen einer solchen Funktion einfach sein.

    
vempo 28.05.2015 19:47
quelle
1

Dieses Problem tritt auf, wenn Ihr Klassenpfad zu lang wird. Es gibt auch Optionen:

  1. Verschieben Sie Ihr Repository auf einen kürzeren Pfad wie D:, möglicherweise befindet es sich an einem längeren Pfad wie C: \ Document und Settings \ XYZ.m2 ... usw.
    1. Setzen Sie useWildcardClassPath in der Konfiguration auf true.

Ich würde empfehlen, den zweiten Ansatz zuerst zu versuchen.

Lass es mich wissen, wenn es für dich funktioniert ...

    
Kailas 27.05.2015 19:41
quelle