2016-06-28 3 views
0

Ich habe mehrere Eclipse-Projekte, die ich mit Maven erstellen. Es sind im Grunde ein paar Bibliotheks-Jars (weil ich Code geteilt habe) und 4 Google App Engine-Projekte, die auf sie verweisen. Ich habe eine Windows-Batch-Datei eingerichtet, um sie alle über eine Maven-Befehlszeile in der Reihenfolge als eine Bequemlichkeit zu erstellen, wenn Sie lokal erstellen, um neuen Code zu testen.Inconstant Maven Fehler beim Erstellen von Befehlszeile

Ich bekomme zufällige Build-Fehler beim Ausführen der Batch-Datei, die sich beschweren, dass es keinen Compiler finden kann. Seltsamerweise, wenn ich die Batch-Datei neu starte, wird es beim 2. Mal gut funktionieren. Das Skript schlägt immer bei Projekten mit Änderungen fehl, es ist jedoch nicht immer das gleiche Projekt. Ich hatte so ziemlich jedes Projekt in der Kette und sowohl die Bibliotheksprojekte als auch die GAE WebApp-Projekte. Es ist komisch für mich, weil diese Projekte etwa 90% der Zeit korrekt erstellen. Ich sollte beachten, dass ich keine Fehler in Eclipse erhalte, diese werden jedoch nur eine nach der anderen erstellen. Hier

ist ein redigiert Ausschnitt aus meiner Batch-Datei:

@REM Change to the Maven project dir 
CD "%BASE_DIR%\[redacted]" 
(mvn install 2>&1 & call doskey /exename=err err=%%^^errorlevel%%) | C:\utility\wtee.exe -a "%LOG_FILE%" 
FOR /f "tokens=2 delims==" %%A IN ('doskey /m:err') DO SET RETURN_CODE=%%A 
ECHO maven returned %RETURN_CODE% 
@IF %RETURN_CODE% gtr 0 GOTO :END 

Und hier ist die Ausgabe der Konsole:

[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building [redacted] 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ [redacted] --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory C:\Users\[redacted]\git\DEVON\Code\[redacted]\src\main\resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ [redacted] --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling 24 source files to C:\Users\[redacted]\git\DEVON\Code\[redacted]\target\[redacted]-0.0.1-SNAPSHOT\WEB-INF\classes 
[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 
[INFO] 1 error 
[INFO] ------------------------------------------------------------- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.139 s 
[INFO] Finished at: 2016-06-28T14:15:45-07:00 
[INFO] Final Memory: 13M/304M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project [redacted]: Compilation failure 
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 
maven returned 1 

ich gesucht und gesucht hier und Verwendung von Google, aber alle Vorschläge zeigen zu einem falschen JDK-Setup im Projekt oder zu Java-Compiler-Pfadproblemen. Allerdings habe ich das alles überprüft, und natürlich ist das Projekt fast immer richtig aufgebaut, und wenn ich die Batch-Datei einfach neu starte, funktioniert es natürlich gut.

Zum Vergleich:

  • Eclipse 4.5.2 (Mars)
  • Mit Maven 3.3.9
  • JDK 1.7.0.80
  • Alle Projekte zu "Compiler-Konformitätsstufe" eingestellt werden 1.7 (wegen GAE)
  • Java Build-Pfad Referenzen:
    • Google App Engine 1. 9,37
    • JavaSE-1,7

jemand so etwas wie dies zuvor gesehen hat? Dies ist eher ein Ärgernis als ein Blocker, aber jede Hilfe zur Lösung wäre wünschenswert.

EDIT: Nach dem -V-Schalter Hinzufügen, bemerkte ich, dass Maven wurde ein jre im Protokoll Referenzierung:

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T09:41:47-07:00) 
Maven home: C:\Utility\apache-maven-3.3.9\bin\.. 
Java version: 1.8.0_92, vendor: Oracle Corporation 
Java home: c:\Program Files\java\jre1.8.0_92\jre 
Default locale: en_US, platform encoding: Cp1252 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos" 
[INFO] Scanning for projects... 

Auch die seltsame Sache ist, das wie 95% der Zeit fein kompiliert, so verwenden sie viel das JDK die meiste Zeit oder es würde überhaupt nicht kompilieren ...

ich habe versucht, meine Java-Home-Umgebungsvariable auf c:\Program Files\java\jdk1.8.0_92 in der Batch-Datei zu ändern, um zu sehen, ob es das behebt.

Antwort

0

Ich rate, dass Ihr Pfad für Java irgendwie nicht konsistent ist, wenn Sie das Skript ausführen. Versuchen Sie, Maven mit der -v Flagge zu laufen. Dadurch wird Ihnen angezeigt, welches Java-Home und welche Java-Version es ausführt.Ihr Java-Heim sollte eine jdk-Installation sein und keine jre-Installation.

+0

Hmm, ich bin nicht sicher, WIE es inkonstant sein kann, wenn ich die Batch-Datei in einer konstanten Weise auslöst. :-) Allerdings werde ich versuchen, die -v-Flag und Monitor hinzufügen, danke für den Vorschlag. –

+0

Ich habe versucht, -v hinzuzufügen, aber das macht nur die Versionsinformationen und baut nicht, also bin ich mir nicht sicher, wie viel das hilft, aber danke. –

+0

Überprüfte die Maven-Dokumentation und änderte sie in -V '-V, --show-version Versionsinformationen anzeigen OHNE Build stoppen" –