6

2 つの異なるラップトップで maven を使用してビルドする同じプロジェクト。1 つは正常に動作し、もう 1 つはエラーを示しています。

ステータス: 両方のシステムが同じ構成です。

C:\Users\admin>mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-07 00:46:01+0530)
Java version: 1.6.0_43
Java home: C:\Installers\Java\jdk1.6.0_43\jre
Default locale: en_IN, platform encoding: Cp1252
OS name: "windows 7" version: "6.1" arch: "amd64" Family: "windows"

使用したコマンド: mvn clean install -DskipTests=true

エラー:

[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 3 source files to C:\Users\admin\HeliosWorkspace\...\target\classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
Failure executing javac,  but could not parse the error:
The system cannot find the path specified.

[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.BuildFailureException: Compilation failure
Failure executing javac,  but could not parse the error:
The system cannot find the path specified.    

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor
.java:715)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifec
ycleExecutor.java:556)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.
java:535)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultL
ifecycleExecutor.java:387)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleE
xecutor.java:348)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java
:180)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
Failure executing javac,  but could not parse the error:
The system cannot find the path specified.

.m2 フォルダーを再度作成するなど、すべてを削除しようとさえしました。

4

5 に答える 5

5

この問題があり、トラブルシューティングで解決しました。

これは実際には、ファイルを実行しようとしたときに無効なパスを入力した場合の DOS エラー メッセージです。

C:\Users\me>c:\asdf\foo.exe
The system cannot find the path specified.

Maven は javac を実行してコードをコンパイルしようとしていますが、正しいパスがありません。多くのセットアップでは、pom.xml でコンパイラへのパスを確認する必要があります。cmdプロンプトに移動してコピーして貼り付け、有効なパスであることを確認してください。

以下の例のように、settings.xml プロファイルを使用してさまざまな JAVA_HOME でいくつかのグローバル構成を定義するセットアップの場合、各変数のパスが正しいこと、これらの変数を含むプロファイルがアクティブであること (activeProfile タグでこれを保証できます)、および正しいことを確認します。 pom.xml で参照されている

<!-- settings.xml -->
<profiles>
<profile>
  <id>compiler-versions</id> 
    <properties>
        <JAVA_1_5_HOME>C:/java/jdk1.5.0_16</JAVA_1_5_HOME>
        <JAVA_1_6_HOME>C:/java/jdk1.6.0_43</JAVA_1_6_HOME>
        <JAVA_1_7_HOME>C:/java/jdk1.7.0_55</JAVA_1_7_HOME>
  </properties>
</profile>
</profiles>


 <activeProfiles>
    <!-- make the profile active all the time -->
    <activeProfile>compiler-versions</activeProfile>
 </activeProfiles>

pom.xml スニペット:

<!-- pom.xml -->
<!-- ... -->
<build>
            <configuration>
                <verbose>false</verbose>
                <fork>true</fork>
                <executable>${JAVA_1_6_HOME}/bin/javac</executable>
                <compilerVersion>1.6</compilerVersion>
                <meminitial>256m</meminitial>
                <source>1.6</source>
                <target>1.6</target>
                <!--encoding>UTF-8</encoding-->
                <maxmem>512m</maxmem>
            </configuration>
</build>
于 2014-05-19T15:45:46.637 に答える
0

同様の問題があり、settings.xml @ Maven_home/conf または C:\Users\.m2\settings.xml が間違った JDK パスを指していることがわかり、問題を修正しました。上に出力されたエラー メッセージは、実際には「javac の実行に失敗しました」と表示されています。これは、Maven が JDK を見つけられなかったことを意味します。

ありがとう

于 2013-12-11T21:55:26.850 に答える
-1

POM ファイルを確認し、MVN と Java に適切な環境変数があることを確認します

于 2013-10-31T14:06:09.483 に答える