0

OSX(Java 1.6)のEclipseの標準Javaプロジェクトでコーディングしたクラスがあります。このクラスは、別のライブラリのクラスとインターフェイスを使用します。
クラスを選択し、[実行]> [Javaアプリケーション]を実行すると、すべて正常に機能します。

その後、プロジェクトをMavenプロジェクトとして実行しようとすると、少しイライラし始めます。誰かが私が間違っていることを教えてくれることを期待して、ここですべての手順を要約します。-標準のJavaプロジェクトから右クリックして「構成」>「Mavenプロジェクトに変換」を実行し、「フィンランド語」をクリックしました。これまでのところすべて良い。

  • 次に、[ビルドパス]> [ビルドパスの構成]>で、プロジェクトを含むフォルダーを追加します。まだいい

  • 次に、Mavenが1.6ではなくJDK 1.5を使用していることをSOのどこかで読んだので、すべての@Overrideアノテーションを削除します。いずれにせよ、私はそれらを削除し、私の赤い旗は消えます。この時点で、私のクラスは元のJavaプロジェクトとまったく同じように見えます(削除した@overrideを除く)

  • 次に、Maven>cleanを実行します。ビルドが成功します

  • 次にMaven>インストールします。ビルドに成功しました

  • 次に、クラスを選択して[実行]> [Javaアプリケーション]を実行すると、次のような見苦しいトレースが表示されます。

    スレッド「main」の例外java.lang.NoClassDefFoundError:LMAXTrading / algos / HeartbeatClient原因:java.lang.ClassNotFoundException:LMAXTrading.algos.HeartbeatClient at java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)atjava。 security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:190)at java.lang.ClassLoader.loadClass(ClassLoader.java:306)at sun.misc.Launcher $ AppClassLoader.loadClass( Launcher.java:301)at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

ここからどこへ行けばいいのかわからない。これを機能させる方法を見つけるために、私が多くの試行錯誤を繰り返し、SOや他の場所で検索したことを想像できます。しかし、私は何が悪いのか理解できません。だから誰かがアイデアを持っているなら、私は聞く準備ができています。

ナビゲータービューとパッケージエクスプローラービューからディレクトリレイアウトの下に貼り付けています

レイアウトナビゲータービュー

ここに画像の説明を入力してください

これが、JRE構成を追加したPOM.xmlです。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>someproject</groupId>
  <artifactId>someproject</artifactId>
  <version>1.0-SNAPSHOT</version>
    <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
4

1 に答える 1

7

プロジェクトのディレクトリ構造がデフォルトのMavenディレクトリ構造と一致しません。Mavenは、ソースがsrc/main/javaルートフォルダー(を含むフォルダーpom.xml)の下のディレクトリにあることを想定しています。ここのソースはsrcフォルダにあるため、No sources to compileエラーが発生します。

ソースを移動してデフォルトのMavenディレクトリ構造を使用するか、pompom.xmlのセクションに以下を追加してソースディレクトリを明示的に指定するように変更することができます。build

<sourceDirectory>${basedir}/src</sourceDirectory>

Mavenの標準ディレクトリレイアウトの詳細については、こちらをご覧ください

于 2012-10-12T17:29:50.500 に答える