2013-01-04 10 views
57

これは本当に簡単な質問ですが、おそらくわからない設定ですが、Googleではこの質問に対して特に役に立たないため、コンパイルエラーについての結果を提供しています。コンパイルエラーメッセージを変更します。次のようにmaven「シンボルが見つかりません」メッセージは役に立たない

私はMavenを持つ私のプロジェクトをビルドするとき、それは私にエラーメッセージを与えるには、大まかにフォーマットさ:

[ERROR] /path/to/source/Main.java:[13,8]エラー:見つけることができませんシンボル

私がantまたはjavacでビルドすると、実際にはエラーメッセージで見つからないシンボルが表示されます。 mavenは私に行番号と文字の位置を与えますが、実際のシンボルを表示する方がより役に立ちます。上記の行は、「シンボルを見つけることができません」というエラーのそれぞれに対して与えられた唯一の行です。シンボルの上または下には線がありません。その情報を私に教えてもらうための方法がなければならないと思っていますが、それが何であるか分かりません。私はmvnが私にそれを使ってみたので、-eオプションを試しましたが、実際のシンボルではなく、エラーのための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] ------------------------------------------------------------- 

シンボルSoundEngineFilePanelではなく、 "fakeThing"と "fakeThing2"が見つかりません。

+0

いくつかのバージョン情報(特にMaven)などを提供できますか?これは私のために起こることではありません。 –

+1

...エラー出力のいくつか。私は、欠落している記号が前の行または次の行に記載されていることは確かです! –

+0

さらに詳しい情報が提供されています。 – mattg

答えて

35

これはMavenコンパイラプラグインのbugです.JDK7に関連しています。 JDK6でうまく動作します。 3.1へ

+4

maven-compiler-plugin 3.1で修正されているようです。 [george-papatheodorou](http://stackoverflow.com/users/1570793/george-papatheodorou)の答えを参照してください。 –

+0

これは解決策ではありません。java 8でコンパイルエラーが発生しています。 – Eta

1

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

+4

いいえ、そうではありません。私はその質問を編集した。 – mattg

+0

同じエラーが発生しました。後続のエラーにより、プロジェクトに欠けていた依存関係の名前が与えられました(この場合、org.apache.poi.xssfライブラリクラス)。 – John

0

私の推測では、コンパイラは無効なアノテーションについて不平を言っています。私は、Eclipseがすべてのエラーを表示しないことに気付きました。つまり、アノテーションの配列の最後にカンマのようなエラーがあります。しかし、標準javacがあります。

+0

それは不平を言っている行は 'fakeThing = new JPanel()'です。これはjavacが "fakeThing"を表示する標準の "シンボルを見つけることができません"というエラーです。メイヴァンはそれを表示していません。 – mattg

29

更新:

<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> 
+0

このプラグインの最新バージョンを確認する最良の方法は何ですか?私が見つけられるのはこのページです:http://maven.apache.org/plugins/maven-compiler-plugin/source-repository.htmlありがとうございました。 –

+1

http://maven.apache.org/plugins/index.html –

2

でも私は、Java 7、Mavenの2.2.1を使用していますし、同じエラーを得ていた、私は私のポンポンから<scope>tests</scope>を削除し、成功した私を構築するために

mvn clean -DskipTests=true installを使用私のMavenバージョンをアップグレードすることなく、

+0

"mvn clean -DskipTests = true" installは魔法のコマンドです!共有のためのThx。 (私はテストに触れていませんでした) – Eta

3

私は同じ問題を抱えていました。

Symbol cannot be found,Class...".

それを修正するには:理由は、私は私がmvn compileを実行したときに、2つのJARファイルは、そう、Mavenの依存関係を通じてコン​​ソールの表示エラーエラーを添加しない持っていたということでした

  1. JARを削除しますビルド・パス
  2. からファイルがmvn compile
3

パス

  • 実行を構築するために追加I新しいクラスを追加してから再構築されなかった子jarに問題がありました。その子jarのpom.xmlは、失敗したpom.xmlに子と親の関係として関連付けられていませんでした(<parent>タグを使用) 。だから私は子供の瓶を作り直した後にエラーが起こった。

  • +0

    これも私の問題でした。 Mavenには確かに存在するバグがありますが、ほとんどの場合、Mavenのエラーやビルドの問題は、これらのシナリオで説明されると思います。 –

    0

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

    0

    私はmavenと同じ問題がありました。私の問題は、差異のある大文字と小文字の区別があるフォルダを生成していたことです。私は.service.MyFileを期待していましたが、ターゲットフォルダではService/MyFileであり、Javaでは大文字と小文字が区別されます。見つけ出すのに数時間かかりました。チェックアウトすることをお勧めします。

    0

    解決策:@コンポーネントをビルドする前に(mvnクリーンインストールを使用)。一度プロジェクト全体をビルドして、コンポーネントを再度ビルドします。

    理由:
    このエラーは何度も発生します。 ほとんどの場合、私はコンポーネントを単独でビルドしようとします(私は変更を加えていないので)。

    右、しかし、最近ダウンロードされた余分なjarファイルが(そのコンポーネント内の)第三者によって行われた変更の影響を受けているかもしれません。あなたが作業スペース内の他のプロジェクトへの依存関係を持っており、これらのプロジェクトが正常に構築されていない場合は、プロジェクト全体のクリーンインストールをフルMVNは私に何度も

    0

    を保存作り、このようなエラーが来るかもしれません。 このような依存プロジェクトを最初に構築してみてください。

    関連する問題