2016-06-28 12 views
0

Mavenを使用してビルドしているEclipseプロジェクトがいくつかあります。それは基本的に(私はコードを共有しているので)ライブラリのjarファイルと、それを参照する4つのGoogle App Engineプロジェクトです。私は、新しいコードをテストするためにローカルにビルドするときに便利なように、Mavenのコマンドラインを順番にビルドするためのWindowsバッチファイルをセットアップしました。コマンドラインからビルドするときに不安定なMavenエラーが発生する

バッチファイルを実行しているときにコンパイラが見つからないと言うとランダムなビルドに失敗しています。奇妙なことに、もしバッチファイルを再起動すると、2回目はうまく構築されます。スクリプトは常に変更されたプロジェクトで失敗しますが、必ずしも同じプロジェクトではありません。私はチェーン内のすべてのプロジェクト、そして図書館プロジェクトとGAE WebAppプロジェクトの両方にかなりの成果をもたらしました。これらのプロジェクトは時間の約90%を正確に構築するので、私にとっては変です。 Eclipseでエラーが発生していないことに注意してください。ただし、これらは一度に1つしかビルドされません。ここで

は私のバッチファイルの編集さ抜粋です:

@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 

をそしてここでコンソール出力である:私は検索し、こことGoogleを使って検索しました

[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 

が、すべての提案がポイントプロジェクト内の不適切なJDK設定、またはJavaコンパイラのパスの問題に適用されます。しかし、私はそのすべてをチェックしています。もちろん、プロジェクトはほとんどすべての時間を正しくビルドしています。もちろん、バッチファイルを再起動すれば正常に動作します。参考

  • すべてのプロジェクトを "コンパイラ準拠レベル" に設定されている
  • JDK 1.7.0.80を使用してMavenの3.3.9を
  • 使用のEclipse 4.5.2(火星)を使用

    • 1.7(GAEのため)
    • Javaビルドパス参照:
      • Google App Engine 1 9.37
      • のJava SE-1.7

    誰もが前にこのような何かを見ていますか?これはブロッカー以上の厄介なことですが、それを解決するための助けに感謝します。

    EDIT:-Vスイッチを追加した後 、私はMavenのがログにJREを参照していることに気づい:

    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... 
    

    再び奇妙なことは、これは時間の95%のような細かいコンパイルされ、それははるかに...時間のほとんどまたはそれがすべてでコンパイルされないでしょう

    をJDK を使用する私はそれを解決するかどうかを確認するために、バッチファイルでc:\Program Files\java\jdk1.8.0_92に私のJavaホームの環境変数を変更しようとしました。

  • 答えて

    0

    私は、スクリプトの実行時にJavaのパスが一貫していないと推測しています。 -vフラグを付けてmavenを実行してみてください。これにより、実行中のJavaのホームとバージョンがわかります。あなたのjavaホームはjreインストールではなく、jdkインストールでなければなりません。

    +0

    私はバッチファイルを一定の方法でトリガしているときに、それが不定になることはありえないと思います。 :-) しかし、私は、-vフラグを追加して、モニターを提案しようとしています。 –

    +0

    私は-vを追加しようとしましたが、バージョン情報をダンプしてビルドしていないので、どれだけ役に立ったのか分かりませんが、感謝します。 –

    +0

    Mavenのドキュメントをチェックし、-V '-V、--show-version ビルドを停止せずに表示するように変更しました。 –

    関連する問題