87

これは非常に単純な質問であり、おそらく私が知らないどこかの設定ですが、Google はこの質問に対して特に役に立たず、コンパイル エラー メッセージの変更方法ではなく、コンパイル エラーに関する結果を提供しています。

プロジェクトを Maven でビルドすると、次のような形式のエラー メッセージが表示されます。

[エラー] /path/to/source/Main.java:[13,8] エラー: シンボルが見つかりません

ant または javac でビルドすると、エラー メッセージで見つからないシンボルが実際に表示されます。maven は行番号と文字位置を教えてくれますが、実際のシンボルを表示するともっと便利です。上記の行は、「シンボルが見つかりません」エラーのそれぞれに対して指定された唯一の行です。シンボルを与える上または下の行はありません。Mavenにその情報を教えてもらうには何らかの方法が必要だと思いますが、それが何であるかはわかりません。-e オプションを試してみました.mvnがそれを使ってみるように言ったので、実際のシンボルではなく、エラーのmavenトレースバックを返しました.

何か助けはありますか?

mvn --version の出力は次のとおりです

Apache Maven 3.0.4 (rNON-CANONICAL_2012-10-24_11-25_mockbuild; 2012-10-24 07:25:04-0400)
Maven home: /usr/share/maven
Java version: 1.7.0_09-icedtea, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.6.6-1.fc17.x86_64", arch: "amd64", family: "unix"

そして、これは(役に立たない)エラーメッセージの例で、mavenの出力とまったく同じです(ディレクトリが短縮されているだけです):

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /path/to/source/SoundEngineFilePanel.java:[33,8] error: cannot find symbol
[ERROR]  class SoundEngineFilePanel
/path/to/source/SoundEngineFilePanel.java:[36,8] error: cannot find symbol
[INFO] 2 errors 
[INFO] -------------------------------------------------------------

見つからないシンボルは「fakeThing」と「fakeThing2」であり、SoundEngineFilePanel ではありません。

4

17 に答える 17

41

これは、JDK7に関連するMavenコンパイラプラグインのバグだと思います。JDK6で正常に動作します。

于 2013-01-04T21:51:35.897 に答える
37

3.1 へのアップデート:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>
于 2013-09-01T15:58:06.300 に答える
9

私の場合、新しいクラスを追加したために再構築されなかった子 jar に問題がありました。その子 jar の pom.xml は、失敗した pom.xml と子から親への関係 (<parent>タグを使用) として関連付けられていませんでした。そのため、子jarを再構築した後、エラーが発生しました。

于 2016-09-21T15:26:32.063 に答える
2

私はJava 7、maven 2.2.1を使用していて同じエラーが発生していまし<scope>tests</scope>たが、pomから削除して使用しました

mvn clean -DskipTests=true install私のMavenバージョンをアップグレードせずに、プロジェクトを正常にビルドするために。

于 2013-09-23T10:39:27.107 に答える
2

ワークスペースで他のプロジェクトに依存していて、それらのプロジェクトが適切にビルドされていない場合、このようなエラーが発生する可能性があります。最初にそのような依存プロジェクトを構築してみてください。

于 2017-09-15T11:13:06.887 に答える
1

Intellij を使用していて、上記の解決策が機能しない場合は、[ファイル] > [キャッシュの無効化] / [再起動] を試してください。

これは私にとってはうまくいきました。複数のブランチで作業している場合、IDE がそのキャッシュを使用し、キャッシュ内でファイルを見つけることができないため、コンパイル中にエラーが表示されることがあります。

于 2021-01-19T06:07:09.333 に答える
0

これはMavenの機能ではありません。これはコンパイラの機能です。よく見てください。探している情報は、おそらく次の行にあります。

于 2013-01-04T20:26:25.603 に答える
-1

コンパイラが無効な注釈について不平を言っていると思います。注釈の配列の末尾にあるコンマなど、Eclipse がすべてのエラーを表示するわけではないことに気付きました。しかし、標準javacはそうです。

于 2013-01-04T20:49:57.363 に答える
-1

プロジェクトでMavenインストールを実行しようとすると、Eclipse STSで同様の問題が発生しました。そのプロジェクトの pom.xml ファイルの依存関係と、それらの依存関係が指すプロジェクトのいくつかのバージョンを変更しました。変更したすべてのプロジェクトでMavenインストールを実行してから、元のプロジェクトで再度インストールを実行することで解決しました。

于 2016-12-29T18:58:46.420 に答える