9

EclipseでJavaプロジェクトをビルドするためにm2eclipseをインストールしました。

次のようにプロジェクトをインポートしました。

Import->
Maven->
Existing Maven Projects->
Import Maven Projects->
- Select root directory
- Select pom file
- Click Finish

m2eclipseが実際にプロジェクトをビルドしていることを確認するために、ターゲットディレクトリを削除し、m2eclipseによって再作成されたことを確認しました。ただし、すべてを完全にビルドしたコマンドラインバージョンのmavenとは異なり、m2eclipseではソースコードに多数のビルドエラーが残ります。

m2eclipseを正しく構成しなかった可能性はありますか?これをどのように確認しますか?

これは、私が構築しようとしているプロジェクトへのgithubリンクです。この行で@Overrideビルドエラーが発生します。「メソッドcreateNewTokenはスーパークラスメソッドをオーバーライドする必要があります」と書かれています。

4

3 に答える 3

13

更新:問題は、プロジェクトをEclipseにインポートした後の「スーパークラスメソッドをオーバーライドする必要がある」エラーで説明されているものと同じであり、受け入れられた答えは次のとおりです。

EclipseのデフォルトはJava1.5であり、インターフェースメソッドを実装するクラスがあります(Java 1.6では@Overrideで注釈を付けることができますが、Java 1.5ではスーパークラスメソッドをオーバーライドするメソッドにのみ適用できます)。

コンパイラレベルをJava1.6に変更すると、問題は解決します。これを行うには、コンパイラプラグインの構成を変更します。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.1</version>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
  </configuration>
</plugin>

そして、プロジェクト構成を更新します(プロジェクトを右クリックしてからMaven Vプロジェクト構成を更新します)。Eclipseでの問題は解決します。

または、1.5を使用しますが、問題のある@Overrideアノテーションを削除します。

TaylorがJava1.5コンパイラレベルでどのように動作するようになったのかわかりません。そして、私の推測では、プロジェクトはJDK5のコマンドラインでビルドされないでしょう。


ただし、すべてを完全にビルドしたコマンドラインバージョンのmavenとは異なり、m2eclipseではソースコードに多数のビルドエラーが残ります。

それらの「エラー」を見ずに何が起こっているのかを正確に言うのは難しいです(それらは本当にエラーですか?)。いくつかの痕跡を提供してください。

m2eclipseを正しく構成しなかった可能性はありますか?これをどのように確認しますか?

1つの違いは、m2eclipseがデフォルトでMaven 3の組み込みバージョンを使用することです。これは、コマンドラインで使用するバージョンとはおそらく同じではありません。これは、 Window V Preferences V Maven Vインストールを介して変更できます(そして独自のインストールを追加します)。

代替テキスト

コマンドラインよりもEclipseで同じバージョンを使用することをお勧めしますが、これが問題の根本的な原因ではない可能性が非常に高く、Maven2ビルドはMaven3で問題なく実行されるはずです。

于 2010-08-21T19:25:32.253 に答える
1

コードをチェックアウトしました。私はまったく同じ問題を抱えています。コードが壊れているようです。

編集:間違いなくそうです。クラス com.jappstart.service.auth.UserDetailsS​​erviceImpl を見てください。メソッドをオーバーライドしたいのですpublic final UserDetails loadUserByUsername(final String username)が、このメソッドはクラスが実装するインターフェースに存在せず、スーパークラスもありません。

編集:わかりました、それはそれがmavenスタンドアロンでビルドされる理由を説明していません。これは私にとってもうまくいきます。非常に奇妙な。m2eclipse で動作しないビルドで何かが起こっているようです。

編集: バイトコードは datanucleus プラグインによって変更されるため、コードが機能すると確信しています。プロジェクトをmavenビルド(右クリック->実行->mavenパッケージ)として実行すると、m2eclipseとの戦争が正常に作成されます。したがって、問題は m2eclipse Maven Builder にあると思います。

于 2010-08-21T19:56:59.723 に答える
1

Eclipse が 1.6 ではなく Java 1.5 を使用するように構成されている場合、オーバーライド エラーが表示されます。プロジェクトのプロパティを確認します。

于 2010-08-21T21:02:53.237 に答える